First off, the inevitable disclaimer: I’m a Flash guy, not really an HTML5 guy. But I’m also an Apple guy – I’ve owned 8 Macs, 2 iPhones, and 0 PCs over the last 20 years. I’m naturally receptive to Steve’s ideas, so maybe this HTML5 stuff does make sense. Or does it?
I don’t mean to come late to or prolong the argument. Rather, I actually wanted to dig a little deeper into the HTML5 vs. Flash debate and offer a fair rebuttal to the most fanatical of claims.
Let’s get to it…
I’m getting this out of the way first because it’s been done to death. Yes, it’s possible to play video without Flash by using HTML5 video. But it has caveats depending on the browser and the codec. This myth also wants us to overlook that we’ve been able to play video in HTML4 for over a decade using Quicktime, Windows Media, DIVX, RealPlayer, and dozens of other formats.
The problem solved by Flash video wasn’t can I show a video? Instead, Flash solved can everyone watch my video? HTML5 video doesn’t provide this solution; it just adds another approach to the incompatibility pile.
It’s also important to point out that Apple’s support for HTML5 video in iPOS* has less to do with open standards and more to do with boosting QuickTime-based view count. Don’t believe me? Visit www.youtube.com/html5 on your iPhone. You won’t see the HTML5 video example. Instead you’ll be forwarded to YouTube mobile which offers videos playable only in the iPOS QuickTime player.
* iPOS – aka the iPhone, iPod, iPad OS
Another hot topic with little merit. If Flash had stopped advancing eight years ago it might have been possible see “HTML5 kill Flash” someday. But Flash is far more ubiquitous and powerful than that.
In the immediate future, Flash player will be up and running on almost every device and browser. Historically it takes about a year for the latest Flash Player to hit 80% penetration, and another 6 months to get to 90%.
In contrast, HTML5 must continue to wait for users to adopt newer browsers as well as for these browsers to negotiate standards. The leading HTML5 browsers, Safari and Chrome, make up less than 20% of the desktop market. And Mobile Safari is only at ~30% share despite being available for 2+ years and the current mobile market leader.
Moving on, the Flash Platform today provides a far more complex level of interactivity that the HTML5 digerati can imagine, including skinnable components, embeddable swfs, movieclips, native apps w/ native processes, video and microphone input, peer-to-peer communication and file transfer, the Text Layout Framework, shared whiteboarding, and multiplayer games …and that’s just the off-the-top-of-my-head stuff.
Fact is, no other technology provides all of this in a single universal platform.
To me, canvas appears to be is the most severe limitation to HTML5. To start off, there’s the little things. Canvas doesn’t support fonts except those supported by each particular browser. Canvas only supports limited interactivity, so games are a no-no.* Canvas has no plans for accessibility. And canvas can’t do this.
The there’s the big thing: canvas has zero support for designers. No apps, no drawing tools, no animation controls, no tutorials. Nothing! What does exist are various examples of how to write code to create primitive graphics or how to convert graphics from Illustrator to canvas.
Designers and artists don’t write code, they draw lines and add color. They expect a GUI to create visual content, not BBEdit. Easy-to-use visual tools will have be created for design and layout before we ever see serious adoption.[ * Update: I misread this section in the specifications which actually advises against graphically intense canvas content, particularly that which could be done in mark-up.]
This is a catch-all for some of the most common complaints associated with Flash, yet will persist in HTML5.
1) CPU hogging – yes, Flash pushes CPUs. But so does HTML5, even with really simple apps.
2) Banner ads – HTML5 won’t kill Flash banner ads – they’ll just be done in HTML5, but now you can’t ignore them with a Flash-blocker (note to HTML5 developers – you can have the banner market. Please. Take it.)
4) Crashes – this one is harder to clearly refute except to say that Flash Player 10.1 is far less resource intensive than the current version because it’s meant to work on mobile devices, which is no small effort. In contrast, HTML5 is brand new and therefore untested. As people start to experiment with complex canvases, we’re going to see CPUs pushed just as much as Flash, if not more.
The fact: nobody is doing more to support HTML5 than Adobe (not even Apple). First off, Adobe provides the tools for 99% of the creative community, so inevitably Adobe will be the primary source for design tools to actually make SVGs and canvas content. Ironically, Adobe pushed for SVG integration but was ultimately won over by the flexibility of Flash.
Further, Adobe is already working on supporting the code-based approaches to graphics in their Creative Suite. FXG, a XML-based graphic format guide, was started with CS4 to better enable the transfer of graphic content between apps. With some tweaking, it will be very easy for Illustrator, Fireworks, and Photoshop to export canvas-happy content. If Flash picks up the torch, we may even have sophisticated animation as well.
Bottom line (and greatest irony): the only company we can actually count on to make HTML5 successful will be Adobe.