Flash vs. HTML5: THE RECKONATING

So Adobe and Apple are in a sissy slapfight about Apple hating on Flash. Steve Jobs seems to think Flash is slow and bloated and buggy and just generally skanky and awful.

Well, yes, it is. Sorry Adobe, but Jobs has a point here. Admittedly the lion’s share of Flash’s problem is the people using it. Preloading your Flash movie with 100 megs of kitty photos is a good way to make most computers poop all over themselves. But rather than add in a tooltip that says “Hey, developer person, your compiled ‘movie’ is larger than your World of Warcraft install directory. Maybe you could dial things back a little there, Bunky,” Adobe just assumes people know what they’re doing.

BAD MOVE ADOBE. Nobody ever knows what they’re doing, least of all programmers. We just try different things at random until they work, then never touch that code again for fear of jinxing it. It doesn’t help that ActionScript since version 3 has taken what was a language built specifically for what Flash does and turns it into some weird version of Java with all-new lists of types for my feeble mind to memorize. Dammit, not another OOP-oriented C-like, I thought, my fists clenched in rage, when I saw the specification. Please, no more prototyping, I pleaded, to deaf ears. Nobody likes taking an hour just to set up the framework of a program before you can start working on it, I raged, but no, Adobe resolutely turned its back to my protestations. What a bitch.

(And yes, I know, they created a new language SDK so they could develop Flex and AIR and so on. It’s still way more verbose and encapsulated than it needs to be. In the olden days, before there was hair, most programming languages would actually support writing a one-off straight-ahead program to do something simple and could do it in ten minutes. Now, blech. BLECH I SAY.)

So Apple has a point about Flash. According to them, who needs Flash when you have HTML5 galloping in like a white knight. At last, a completely open system which uses JavaScript (or “ECMAScript” if you’re concerned about the open-sourced-ness of the language to the point of being obnoxiously pretentious) alongside new HTML DOM elements for audio, video and drawing. At last, Our Long National Nightmare is Over.

This is great and all, but, er, psst, Steve: HTML5 isn’t any easier on a computer. In fact, it seems to be a lot worse so far. Part of this is because HTML5 isn’t an accepted specification yet, and implementation is spotty in even the best current browser. But right now, drawing to a Canvas element (the HTML5 version of a “drawing surface” on a web page) is heavy on the CPU compared to Flash.

Most browsers’ JavaScript engines aren’t really built for speed. They were originally designed to make hamsters dance, which doesn’t require a lot of optimization. But now developers are building whole operating systems around them, and they’re getting a bit … creaky. The recently rewritten WebKit engine has the fastest JavaScript interpreter I’ve tried, but a simple mouseover script I wrote still took up 66% of my computer’s CPU and eventually locked up one core completely. Now that gives a developer confidence.

We have a way to go yet for HTML5 to gain widespread acceptance and even further before it’s a real “Flash killer.” In the meantime, much like democracy, Flash is the worst system in the world except for all the other ones.

(Incidentally, in the interest of full disclosure, I’ll probably dig deep in my pockets and get a copy of the Adobe CS5 suite when it comes out. One of the features of Flash CS5 is the ability to export a Flash movie as an iPhone app. Meanwhile, Apple just changed their iPhone OS 4.0 EULA to specifically forbid anything developed by third-party applications, including Flash. So in conclusion, Apple can bite me. Hard. Right there. I’m pointing at my butt.)

Comments are closed.