The future of Flash and what it means for developers

Published Date
01 - Dec - 2011
| Last Updated
01 - Dec - 2011
 
The future of Flash and what it means for developers

There has been a lot of news from Adobe when it comes to the Flash platform and it hasn't been very clear what the future holds for the Flash platform. Hopefully we can clarify what some of these developments mean.

Adobe has signaled the end of the Flash Player for Mobile, however does this mean the end of Flash? No. No more than it means the end of Firefox because Firefox isn't available on iOS. The confusion here stems from what Flash really means.

There are two aspects of Flash platform that we should take a look at. Firstly, Flash as a way creating content, this could be using Flash Builder, Flash Professional, or the number of free and even open source tools available that can create Flash content. These are tools for creating content, and Flash files are just an output.

Second is Flash as a way of consuming content. The Flash Player is a runtime that executes SWF files, or Flash files, this is comparable to how Gecko, and WebKit are runtimes that execute open standard web content (HTML, CSS, JS). A large number of the capabilities that we unique to the Flash runtime are now becoming a part of open standards.

There are many odd ways to creating Flash content that will run on the Flash Player. For example, Adobe's Alchemy lab project allowed developers to compile C code to Flash. Another language haXe allows code written in it to be compiled to Flash files.

There are also alternative ways to consume content created in Flash tools. The AIR runtime allowed Flash content to be packaged as native applications for desktops and mobiles. With haXe for example, one could write code that could be compiled to Flash to run on the Flash Player or to JavaScript and run directly in a browser. Adobe too is working on allowing Flash Professional to export HTML content, and is working on a cross-compiler that can compile Flex applications written in MXML and JavaScript to web standard (HTML JavaScript) applications.

While Flash is being primed for creating native applications, so is the alternative of open web technologies via PhoneGap. PhoneGap allows one to package web applications as native applications on all major mobile platforms, so they can be purchased from a web store and run natively. It could well be possible to have a Flex applications compiled to HTML JS running on PhoneGap.

So what does the recent announcement mean in this context? Mobiles will no longer be able to consume content created in Flash tools using the Flash Player. It will still be possible to use AIR and run such content on mobiles directly as native apps.

While Flash Player for mobiles made it possible for websites designed for desktops to work on mobile devices, merely working isn't enough. For a website to be usable, it needs to be designed for smaller screen platforms, whether it uses Flash or not. So while Flash for Mobile makes sites that use Flash accessible from mobile, it doesn't automatically make them mobile ready. This is as far as users see it. They have a Flash website they want to visit, and they can now visit in on desktops and mobiles thanks to the Flash mobile plugin. As long as the website works the same, users will not care whether Flash is used or not. 

Additionally, while one of the advantages of Flash has been that it is available on a majority of computers, the same has not been true of Flash on mobiles. With the major share of iOS devices, and no chance of the Flash Player on mobiles, it was unlikely to ever reach the same level of penetration, and thus unlikely to ever become a serious means of delivering content in the browser.

Adobe still intends to make it possible to create native Android, iOS and Blackberry applications using their tools. Why? Because these capabilities are useful to those creating applications, and something people pay for.

So for now Flash is safe, it provides a number of features still that aren't provided by any browsers directly, and in fact aren't even part of the standards that will define the future of these browsers. It also provides a number of features consistently that browser vendors are still inconsistent about. For example, Flash Player is still a consistent way to deliver H.264 video, and a consistent way to deliver DRM protected and streaming video. Flash Player 11 might also be a consistent way to deliver 3D content as Internet Explorer is still lacking there.

Additionally, the Flash runtime is being targeted by major toolkits such as theUnreal 3 SDK, and Unity 3D. Even Crytek is looking into enabling 3D gaming in the browser using their engine running in Flash. So for gaming at least there is a good case to be made, especially since such games will run on Windows, Linux and Mac OSX.

There is something really wrong when a plugin becomes necessary to use the internet. A plugin is something that is added to the core experience, and if that it required for all people, then there is something wrong with the core experience. As new web standards add more features that make it possible to create the kind of content only Flash can now, the Flash player will become further marginalized.

Plugins are very important, because the web can never be everything for everyone, and there need to be ways to enable things that web standards just don't allow or enable, however they should never be a requirement to view a majority of the content on the internet.

Currently Flash player is required if someone wishes to create a website that can display animations, play video, handle uploading multiple files, display 3d content, etc. One by one these features are becoming part of web standards, and eventually, Flash player won't be a necessary plugin but a plugin needed by those who wish to play internet games or watch protected video. The others will be able to do without it.

So while it is unlikely that Flash will go away any time soon, in the longer term, it will just not be as important. HTML and web standard technologies are here to stay, and it is better to be prepared.