Thoughts on Flash
Apparently the title has been used before.
The commentary about the fate of Flash seems never-ending; but it was amped up this week by Adobe's announcement that it's killing Flash-on-mobile. Some is thoughtful, much merely crowing. But there's one common thread: it concerns a mythical single product called "Flash".
There is no such product.
Let's set out the basics. There is a language, ActionScript 3: it's a hybrid of Java and JavaScript, and much less painful than JavaScript. You can use Adobe software (such as Flash Professional, a paid-for product intended for designers, and Flex SDK, a free command-line compiler) to write code in AS3. This code runs either under Flash Player (a browser plugin). It can also be compiled into more-or-less-standalone apps for mobile (iOS and Android) or desktop, using a technology called AIR.
Both AIR and Flash Player supply the same API to AS3, for graphics, networking and the like. There's also a free UI/forms framework, Flex, itself written in AS3.
Out of all this, there's only one area where Adobe makes money: the paid-for authoring tools. This is, after all, Adobe's core business. But they don't have to sink money into a player for Photoshop, for Illustrator, even for InDesign (unless you count Reader). Flash Player is a cost, and a significant one.
As HTML5 advances, it's becoming clear that Flash retains two strengths. One is hardcore pixel-mashing, particularly for games... particularly for 3D games. (In Adobe's words, "high definition entertainment experiences".) Most of the advances in Flash Player 10 and 11 are dedicated to this.
The other is Flex. Flex is an easy, if occasionally exasperating, way to build form-driven 'Rich Internet Applications'. It's full-featured, it speaks XML nicely, and it's internationalised. The Flex framework, too, is being actively developed.
So we have the curious situation where one runtime (Flash Player) is used for both performance-critical 3D games and enterprise-level data-driven webapps.
The two are likely to suffer very different fates.
Games are moving out of the browser. Mobile apps are the new gaming platform, and one where AIR is making serious inroads - not least as the best-placed platform for deploying the same code to iOS and Android apps.
Meanwhile RIAs, or webapps, or whatever you want to call them, no longer need Flash Player. Improved browser feature sets (loosely HTML5) are more than capable of doing what, five years ago, required Flash Player.
Adobe's latest announcement signals the eventual demise of Flash Player - not the death of Flash.
Adobe is too frustratingly erratic a company for any 'predictions' to be worthwhile. So let's call this a mere 'guess' instead:
In a few years, people will still be writing apps in ActionScript 3. Some will be compiled, via AIR, to iOS and Android apps: this is principally the games market. That's a dead cert. Less certain, but still likely in my view, is that other apps based on Flex will be compiled down to JavaScript and deployed in the browser. Meanwhile, Adobe continues to make the same money from authoring tools - but without the cost of a desktop player.
