Flash and HTML5, or Flash vs HTML5?

Martha Bennett, originally published on Computing

Published/updated: October 2011

If anybody attending the Adobe MAX conference had any doubts about Adobe’s commitment to Flash, these were firmly dispelled soon after the start of the event. Equally, anybody for whom Adobe is ‘the Flash company’ needs to think again. To answer my own title question: it’s very much Flash and HTML5. It’s obviously not all going to happen overnight, but based on the presentations I attended and my discussions with several of the executives, Adobe’s positioning at MAX was consistent, coherent, and firm.

Let’s start with Flash. Adobe’s commitment to Flash manifested itself in a variety of ways: a load of new features delivered with Flash Player 11; an amazing demo in the opening keynote of touch apps built in Flash and compiled using Captive Runtime for AIR (not that they said as much at the time); and an even more amazing set of potential new capabilities in the Sneak Peeks at the end of the conference (which may or may not turn into released product), as well as a detailed presentation on the Flash platform roadmap (features that are planned for release). If anybody is interested in more details on any of the announcements of technologies mentioned here, there’s a set of links at the end of this blog post to some of the MAX presentations, demos, and product pages on the Adobe site.

Back to the positioning of Flash: a key new feature, not to say the key feature that was announced at MAX is Stage 3D (formerly known as Project Molehill), to big cheers from the audience. Stage 3D is a set of APIs that introduces GPU hardware acceleration to Flash graphics. Right now, Stage 3D is only available for Windows-based PCs and Mac OS; given the variety of GPU chips in mobile devices, it’s taking a little longer to release it for mobile, but it’s certainly in the works.

There was something for 2D as well: the Starling framework; this is an Adobe-funded open source project which brings GPU support to 2D games for the desktop. Starling sits on top of Stage 3D, and hides the complexity of the Stage 3D APIs from the developer. The demo of a digging mole spoke for itself when it came to demonstrating the difference: without Starling, the mole made stately progress; with Starling, it raced at 60 frames per second, and even filling the screen with moles didn’t slow the creature down. Oh yes, and Angry Birds is coming to a device near you as well in a Flash Player version, based on Starling.

The Stage 3D demos had something for (almost) everybody. I’m not a gamer, but I can see the difference that this technology can bring to browser-based game delivery; and even if you’re not a car nut, the Nissan Juke demo is impressive.

For good measure, it was announced that the Epic Games Unreal Engine for game developers is coming to Flash. For that demo, nothing less than a fully playable level from Unreal Tournament 3 would do. And very impressive it was, too.

So why does this matter? Because one of Adobe’s key positioning plays is for Flash to be the ‘games console of the web’. That’s not a bad place to aim for. If what was shown at MAX lives up to its promises (and there’s no reason why it shouldn’t), there’s a whole new world of gaming opening up. Not that Stage 3D is just about games – it opens up a load of other possibilities as well.

A second key announcement was Captive Runtime for AIR. This provides developers with the ability to ship apps without requiring a plug-in; it does this by compiling the Flash app into a native executable. Ok, so it means a bit more work for the developer, but makes apps more attractive to the user – no more “You must update your Flash player” messages.”

And last, but by no means least, Adobe announced the availability of ‘native extensions’ for AIR 3. Again, this is good news for Flash developers, as it enables them to make use of platform- and device-specific capabilities.

Time now to get onto HTML5. Adobe clearly isn’t going for a wholesale move to HTML5, but its commitment is clear. For starters, Adobe announced the acquisition of Nitobi, the company behind PhoneGap. PhoneGap is an open source development tool for cross-platform mobile apps using HTML and JavaScript. At the same time as the acquisition by Adobe, it was also announced that PhoneGap had been submitted to the Apache Software Foundation. (It has since been accepted, and is now called Apache Callback).

While we’re onto acquisitions: PhoneGap was the second acquisition announced at MAX. The first was Typekit, the web fonts company. This acquisition isn’t specifically about HTML5, but it’s very much about browser-based delivery of high quality fonts. It’s also Adobe’s first move into cloud-based delivery.

Talking of which: one of the major announcements on the first day was ‘Adobe Creative Cloud’. The intention is to build up an online community of creative designers and developers, for viewing, sharing and synchronizing their work. It’ll be interesting to see how this develops, and whether Adobe will launch other cloud-based services.

For now, back to HTML5. A key demo for me was CSS Shaders (CSS = Cascading Style Sheets). Yes, it’s cool. But more importantly, it’s a CSS3 module which Adobe has submitted to the W3C FX task force, in collaboration with Apple and Opera. Further demos included CSS Regions (also very cool), another proposed addition to the W3C CSS modules, and which has already been adopted in IE10; Adobe Edge (aka Eg), a ‘motion and interaction design’ tool for HTML5, which is very much a work in progress, but aims to give more people the ability to create content; and HTML export from Flash Professional (to be included in the next major release). jQuery Mobile also got plenty of airtime. Adobe’s HTML5 direction is focused on WebKit (an open source project), which is not surprising as WebKit is used to allow HTML and JavaScript to run in AIR.

The obvious question arises from this dual platform strategy: when, in Adobe’s view, should a developer reach for Flash, and when for HTML5? As might be expected, a straightforward answer is not available. Roughly put, though, the dividing line is around richness. Clearly, not all of the capabilities of Flash can be replicated in HTML5. So if you’re a games developer, you’re going to be better off with Flash; equally, if you want to ensure that you have full control over the user experience, use Flash. If, on the other hand, you’re putting something together that’s essentially data driven, with less rich interaction, then HTML5 can be an appropriate choice, in particular as PhoneGap makes it easier to package your app for different devices. Two points to bear in mind in this context: HTML5 is very much a work in progress, and it’s too early to tell how exactly PhoneGap will fit into the Adobe puzzle.

It’ll also be interesting to see at next year’s MAX whether the Adobe developer community has started embracing HTML5. As one would expect at this particular event, very few hands went up when the audience was asked how many people had actually developed something in HTML5. All in all, Adobe did a credible job at staking its claim in the brave new HTML5 world, while remaining committed to its Flash heritage. And it must have got the balance right at MAX: some people complained that the event’s focus really was all on Flash, whereas others felt that it was too dominated by HTML5.


Featured Content