There was an interesting presentation-turned-debate at BarCamp Boston titled "HTML5 vs. Flash". I had to wonder going in whether the presentation would be given by a defensive Flash developer or an eager HTML5 advocate. It turned out to be a Flash developer who, presenting on a borrowed MacBook, fairly depicted the recent backhanded and aggressive move from Apple's Steve Jobs in barring Adobe's Flash technology from their tightly controlled iPhone and iPad platforms.
First, a little background. Most of the stuff you see in your browser is created with HTML, the text-based code that your browser reads from web servers. HTML has, until fairly recently, been limited to static text and image content. Long ago, Adobe created a technology called Flash (and later an open source compatible alternative called Flex) that has allowed web browsers to display rich, dynamic and interactive content such as audio, video and SVG (scalable vector graphics) used for games and other interactive graphics applications. One of the most commonly seen examples of Flash is on YouTube. If you've ever watched a video on YouTube or one of the many video services like it, you've used Flash.
Over the years, Flash has enjoyed the position of a web standard without really being one. Flash boasts a 94-99% penetration rate among Internet users. As a browser "plugin" - a peice of software that works in a black box and runs on top of the browser - Flash won out over a number of competing technologies over the years to become the defacto standard for rich media in the browser. To this day, however, Flash needs to be installed separately from your browser and operating system, though most new computers come with it already installed.
Then came HTML5. The W3C, the web standards organization that decides what technologies should be officially deemed "web standards", introduced a new fifth version of HTML in January 2008. The specification has been revised over the years and, now in its fifth version, is supported in some part by all of the "modern" browsers.
The important parts of HTML5 in relation to Flash are the Canvas element, SVG support, audio and video. Of these, all current major browser versions, with the unfortunate exception of Microsoft Internet Explorer, provide a useable level of support. Microsoft promises the forthcoming version 9 of Internet Explorer will play catch up. This means that, soon, with a current mainstream browser version, the benefits of Flash can be replaced by the browser itself for the first time in web standards history.
Soon, of course, is a key word here. We're not quite there yet. Statistically, most people browsing the web aren't using a browser that supports enough of HTML5 to replace Flash in any real way. Despite any optimism behind HTML5, this is an important reality that must be recognized.
Enter Apple's Steve Jobs, who recently announced that Flash will be banned from its popular iPhone and iPad platforms in favor of HTML5 support. Adobe engineers had worked around the fact that the iPhone OS didn't support Flash, but this work-around has been belligerently shut down by Steve Jobs, leaving Adobe and Flash developers in the lurch.
With Jobs' bold move and the increasing adoption of HTML5 in popular web browsers, the future of Flash has been put into question for the first time since it took over rich media on the web. Even Google seems to be on board with HTML5 over Flash, as exhibited by its recent testing of an HTML5 replacement for YouTube's venerable Flash-based video platform.
All of this has Flash developers - folks who have put years of their lives into mastering this platform - on the defensive. You can't blame them. They argue that Apple is WAY out of line here (most rational people would agree) and that Flash is more mature, robust and better supported than HTML5. All of that is true.
But here's the unfortunate reality: Things change. As I see it, there are two central reasons why HTML5 will carry the future of interactive web-based development.
Sure, any hacker can use the open source Flex technology to create Flash output. But at the end of the day, anyone doing serious Flash work would be dumb not to buy Adobe's expensive Flash development toolkit. Adobe retains full control over the Flash format. The benefit of HTML is that anyone with a text editor has the same access to the technology as anyone else. No single company owns or controls HTML, and this broad openness has inspired a myriad of free and paid development tools and, more importantly, clients for HTML. Though possible with the open source Flex project, we simply haven't seen it in the 2 years since Flex was released under an open source license.
More than anything else, it is the depth of browser integration that will eventually push Flash into a back corner of the web. Flash originally became established as a closed technology platform owned by Adobe. Even though they released an open source version of the platform called Flex in 1998, it was too late. For whatever reason, browser makers and the W3C have not felt secure in creating a deep embedded relationship with Flash technology. As a result (and as all web developers painfully know), Flash lives within a quarantined black box in the browser. The browser can communicate with Flash via JavaScript, but only as the compiled Flash file specifically allows it to. With HTML5, rich dynamic functionality runs from code within the native HTML page. It is executed by the browser, not a separate Flash plugin.
Apple's move will be instrumental in speeding up the adoption of HTML5 in browsers and applications. And this is a good thing for everyone. Technology on the web is always way ahead of the "installed base", the software that Joe and Jane User have installed on their 4 year old desktop computer. Apple's move will force developers to use HTMl5 for iPhone and iPad applications when they might have preferred Flash. In doing so, their efforts for browser-based applications will likely reuse these efforts, creating a greater breadth of HTML5 applications in the market and thus increasing demand for browsers to support the new HTML5 standards.
In an unexpected reversal of roles, the mobile web marketplace will be defining and pushing the technology direction of desktop browser software. And, despite the selfish reasons behind the anti-Flash campaign at Apple, I applaud Jobs for having the foresite and fortitude to push forward what is clearly an inevitable development for web technology.