Over the last 18 months or so, I've heard a lot from techie types about Flash is “on its way out”, and the evidence seems to be stacking up. Apple have made their feelings about Flash clear, and Microsoft stopped bundling Flash with Windows and produced their Silverlight platform. The efforts on the Android platform have produced mixed results (source). Now HTML5 has come along and can do much of what has previously only been done in Flash and many see it as the beginning of the end for for Adobe's RIA (Rich Internet Application) framework. Is this really the case?
This interests me as I've been using Flash for about 8 years. I work closely with animators, designers, conceptualists and musicians to produce games and interactive media and I think I understand their needs as well as the needs of developers.
What is the playing field?
A lot of people seem to see Flash as being for adverts and video only, but it is more than that. Flash is an excellent RAD (Rapid Application Development) platform for producing casual games – love it or hate it, Farmville alone has more players (over 80 million) than there are PlayStation 3s in the world (around 34 million) (source).
Flash-based animation series such as Homestar Runner have been hugely successful, partly owing to Flash's ubiquity and efficient vector storage.
It seems to me that that any replacements for Flash must be able to:
- Be available and consistent across platforms
- Produce the rich content Flash has been used for (animated banners, videos, games, RIAs)
- Perform well
Availability and consistency
Flash is easy to get on Windows as it's just an ActiveX plugin, but Mac users have to manually install it from Adobe. Although the format is open to an extent (CS5 uses XML based file formats), the Flash engine cannot be totally open source as it uses third party proprietary code. With HTML5, no special tools are needed – anyone with a compatible web browser can use them – it is not a “single vendor solution” like Flash, rather it is a standard.
HTML5 offers a lot. Its technology stack is “truly open”, rather than being proprietary to Adobe. This is particularly appealing on the web, as it is based on open standards, but unfortunately it's not necessarily consistently implemented across browsers yet (for more information see the full comparison chart). As Dave Story from Adobe remarked last year, Flash provides a consistent platform across browsers (source), and unfortunately, uptake of HTML 5 is likely to take several years to reach the level of desktop penetration that Flash 9 has (around 99% - Adobe Flash penetration stats).
Production of rich content
Flash has often been used to render fonts (using sIFR, for example) but it's not a great solution; the text is running in a plugin rather than rendered by the browser. As Remy Sharp has pointed out, products like TypeKit and FontDeck now make this approach obsolete.
“Can I implement Quake?” seems to be a sort of latter day Turing-completeness test for a technology stack, and Quake 2 has been implemented in HTML5 using GWT (source), so games are becoming viable: HTML5 is gradually starting to have Newgrounds-style portals such as http://html5games.com/.
HTML5 means video can be played without a plugin, although there has been a lot of debate over format support – the HTML5 spec does not specify a standard format. The open source Mozilla Foundation are reluctant to use H.264 as it is owned by the MPEG group and the VCEG rather than being totally open like Ogg Theora and the Google sponsored WebM. Microsoft released a plugin in December 2010 to add H.264 support to Firefox, but the slight legal minefield here is reminiscent of the GIF89 licensing issues a few years back.
Some studies (example) show that Flash is still more efficient for animation than equivalent HTML5 technologies. Also, Flash's stream-based downloading allows for very accurate progress bars. Flash is often accused of being a CPU hog though, and without hardware acceleration it can often slow a machine down significantly. On Macs in particular, Flash seems to cause the computer to chew through battery (source), making it particularly undesirable.
On smartphones, Flash has been found to dramatically slow down handsets (source). The smartphone market is where Flash is weakest – dedicated apps have taken a large share of the space, and HTML5 the rest.
Commercial and non-technical factors
“In about half the time HTML5 has been under design, we've created Silverlight and shipped four major versions of it.”
As the quote on the right suggests, it's easier for commercial companies to innovate than for the cumbersome HTML5 working group to reach decisions. Flash and Silverlight are free to innovate more freely than HTML5, although this comes at the cost of standardisation. It is, of course, possible to innovate on top of standards, but as Microsoft are keen to point out, sometimes “someone needs to blaze a trail” (source). It's difficult to predict what may come in the future, but it seems foolish to write off the possibility that Adobe will come out with something innovative once more.
Although HTML5 is appealing to programmers, where are the HTML5 authoring tools that show in real time what animation will look like, what sounds are being triggered, and what code is being executed? After all, it is designers/animators who will actually be using this stuff. Nobody wants to have to hand-hack every single aspect of animation – tool support is 100% essential.
Where Adobe excels, however, is their Creative Suite (CS) tools. Flash CS5 is a very comprehensive authoring environment. Several commentators have suggested that allowing Creative Studio to export to HTML5 means Adobe can retain their market share even if the format dies entirely (source). This looks to be the case with Adobe Edge: Adobe have demonstrated their ability to export from Flash to HTML5, which looks very comprehensive and flexible.
“Adobe has a brief but golden opportunity to create the tools with which rich HTML5 content is created. Let’s see if they figure that out.”
- Jeffrey Zeldman
Many designers love the Flash development environment (source). Just because you CAN animate something in CSS doesn't mean it's as easy and intuitive as it is in Flash. Non-coders can integrate sound, video, moving graphics and typography with ease; it is no accident that Flash has survived for 14 years.
Flash is dying out on the Apple platform, and has seemingly missed the boat on the smartphone market. Nevertheless, it remains an attractive RAD/animation/media platform. Open Web alternatives have certainly come a long way towards catching up, but significant consolidation work is required from browser vendors to ensure browsers provide a consistent implementation of HTML5 and its related standards.
Adobe's excellent toolset remains by some measure the market leader, and to really take a foothold there is a need for equivalent authoring tools for HTML5/CSS3/SVG that are at least as polished. Even if Flash does die off (which seems unlikely for the next couple of years, at least), Adobe's tools should see them adapt and move towards supporting the open technologies of the emerging web.
Finally, let us not forget that whilst web standards are essential, there is always room for trailblazers and it would be unwise to write off Adobe's capacity for innovation.