Why Flash Isn’t Dead

These days, there’s no short-supply of opinions extolling the demise of Adobe’s Flash. Last month, Adobe announced that they would stop putting efforts into continuing the Flash player for mobile devices. This isn’t terribly surprising for those following Adobe’s efforts. They haven’t proved that the mobile Flash player is stable or ready for wide-spread adoption. For performance-critical or multimedia-rich applications on mobile hardware, there’s an enormous performance cost of running applications through a browser plugin or virtual machine. The hardware offered today on mobile devices is still far from the capabilities of even a low-end desktop computer.

The nature of content in the Flash Player has been shifting over the last few years, even before Steve Jobs was openly critical about it, or before the iPhone or iPad. The things that you should do with Flash are becoming a smaller subset of things you can do with Flash. Rich application development, video streaming, and website creating are much better done these days as browser-native. As the JavaScript, CSS and HTML implementation in browsers has improved, the need for Flash to do certain things has decreased.

Flash’s long-term future as a distribution platform through a browser plugin (what’s referred to here as the “Player”) is dying a slow death, at best. The success of Apple’s App Store has underscored a shift towards device-native mobile apps downloaded through a marketplace as opposed to content delivered through web browser open-standards. However, in all this chatter about Flash, there are some overlooked aspects that, we believe, are important in understanding the future of this technology and why it isn’t going to disappear.

Flash Platform vs. HTML5

While Apple, Google and Adobe have agreed to support the HTML5 specification, the W3C which maintains and publishes the specifications for web standards has only released the Work Draft of HTML5, which was started back in 2004 (by comparison the first iPhone was released in 2007). Standards take a long time to create and an even longer time to adopt. As a developer who implements these standards, it often requires lots of programming hacks, workarounds and platform-agnostic libraries (e.g., jQuery) to compensate for the browser and platform fragmentation.

The landscape for HTML5 has gotten even more complicated than the days of Netscape versus Internet Explorer and HTML4. Not only are there more browsers, but the platform landscape is now a diversity of hardware, audio & video codecs, as well as different javascript capabilities. Asking “why do I want to build a house on mud?” is not dissimilar from asking and “why would I want to create a game with HTML5?”.

Flash’s Identity Crisis: Solved!

In the wake of Adobe ditching the mobile Flash effort, the coverage tended to overlook that Adobe was going to concentrate their efforts on native app publishing (Android and iOS) using Flash. We believe this marks an important shift from Flash as a publishing platform (via the Flash Player) to Flash as a publishing tool (via the authoring environment). The strength of Flash is largely attributed to Flash as an authoring tool. It’s one of the reasons why Microsoft’s Silverlight hasn’t enjoyed such wide-spread adoption. Even with significant blows to the Flash player, the authoring tool is still great for animation, storyboarding, and rapid prototyping. It’s still the best authoring environment available for creative people to create multimedia-rich experiences with very little programming knowledge.

Adobe has been working over the last several years on a compiler which builds Flash content to native iOS apps (formerly called iPhonePackager). In recent years, this functionality has been replaced with ADT (AIR Developer Tool) and iOS publishing in Flash CS5+, which allows the same functionality using a model built for publishing AIR Desktop applications. The tools are still in development but have already shown a lot of promise. Building content for multiple platforms in one authoring environment is the holy grail of device-native development, and Flash now has the best opportunity to make a go at it.