Adobe has released details of the road that lies ahead for Flash, and one thing is for sure, it sure is bumpy. The roadmap emphasises a scaling back of, and a more focused approach to the future of Flash. It shows exactly what’s wrong when a non-standard technology becomes such an ingrained part of the internet.
Adobe is aware of the realities of its products. It almost doesn’t matter that a lot of what Flash has been used for has been achievable with HTML since before HTML5 became a buzzword.
Buzzwords are important though, and it is clear that HTML5 is one despite it having almost nothing to do with most of the demos out there that purport to be HTML5. As self-fulfilling prophecies go, when Apple refused to let Flash on its mobiles, it caused he death of Flash on mobile, it did not predict it.
Without the presence of Flash on one of the most important and popular smartphone platforms, there was no hope for Flash ever reaching the kind of install base it enjoys on the desktop. Web standards however, were available on nearly all modern smartphone devices; that of course has caused its own bunch of troubles.
So now that Flash can not longer be a part of the mobile web, where can it go? What purpose does it solve?
A tighter focus
Here is where Adobe’s new direction for Flash comes in. It was made clear in recent Adobe events that the future of Flash will lie in Gaming and Premium Video content.
Game development tools for the web are still lacking, and 3D on the web is still maturing. Here Adobe sees an opportunity to provide something that the web standards are still lagging on.
Not for long though WebGL, mobile locking support, gamepad support are all in process of maturing as standards, and are already seeing experimental implementations in browsers. So this is just a matter of years.
Till then Adobe has a number of things in the pipeline for Flash developers. They intend to have a game developer program, and gaming related services.
An old Adobe labs project called Alchemy is also due for a comeback. Alchemy allows native C / C developers to compile their code into Flash libraries, allowing such things as Vorbis audio playback in Flash. Adobe is likely to now release a commercial product that allows game developers to reuse some of their existing C / C code in Flash projects.
The second focus of Adobe is on Premium Video, and here is does have a good stand. Web standards do not support any kind of DRM scheme for video, and streaming support is absent. Heck the specification still lacks a video codec that is available on all browsers. Web video is a step back from Flash; hopefully this will change. The issue here is that DRM is counter to the very concept of the open web, and HTML will hopefully never include a specification for it.
Since it would be too much to expect websites such as HULU, NetFlix and the like to abandon protected video and embrace the open web, there will always be the need for a DRM-encumbered video delivery mechanism. Here Flash still has a huge role.
Features coming to Flash and AIR
The roadmap Adobe has released makes explicit mention of the features coming in Flash Player releases this year. Adobe has detailed three releases that are coming this year, Flash Player 11.2, “Cyril”, and “Dolores”.
Flash Player 11.2: This release is already in beta and has a number of important gaming-related features. With mouse-lock support it is finally possible to have immersive 3D FPS games in the browser. This release will also allow disabling the context menu, and adds support for right and middle clicks. It also expands support for hardware acceleration to older cards, and mobile devices. Finally for video content there is a new multi-threaded decoding pipeline that should improve video performance. This release comes within the first quarter of 2012.
Flash Player “Cyril”: Till now Flash Player does not accept keyboard input in fullscreen mode — except the Esc key to get out of it — however that will change with Cyril. Improved low-latency audio support, and streaming textures for 3D content are other features to look forward to in this release; as is the support for compressing ByteArrays using LZMA. This release is scheduled for the second quarter, 2012.
Flash Player “Dolores”: This seems to be a performance-focused release. It finally adds something Flash developers have been asking for for a long time — a field where Flash has already been beaten by web standards — multi-threaded applications in Flash. Using ActionScript workers it will be possible to have multi-threaded applications build on Flash. Other improvements will be in support for profiling and better performance on iOS.
Adobe has also released some details of Flash’s future after this, and it seems major changes lie ahead. More work in improving and modernising the Flash runtime itself is planned, and the ActionScript language itself will be getting an update. The focus is on making it possible to have better performing Flash applications with stricter static typing, type inference and types that are closer to the system hardware.
This new version of ActionScript might not even be compatible with the current ActionScript 3, which means the Flash Player might have another virtual machine added after AVM1 (ActionScript 1 and 2), and AVM2 (ActionScript 3).
Adobe AIR will simply follow Flash updates and incorporate the latest features. There is a focus shift here away form platform-specific API. Adobe has made it possible, with AIR 3 to have extensions to AIR that incorporate any native features. So Adobe need not develop new features for them to be available to developers.
The Flex roadmap
Flex, the open source framework for developing Flash-based applications is now under Apache’s governance, so its development model is obviously changing.
While earlier Adobe had developed parts of the SDK in private in concordance with new features coming in unreleased versions of Flash Player, this will no longer be possible. With development in the open, Flex will now be chasing new features added to the Flash runtime.
Flash Builder, Adobe’s commercial IDE for Flex development, will still be developed by Adobe.
The Flip Side
Unfortunately, it is not all new features and enhancements when it comes to Flash. Linux has barely been a second-class citizen when it comes to Adobe, and now if possible it has gone a step below. At one point Adobe considered it worthy enough to spend resources creating an experimental Linux version of Flash Builder; and now they are for the most part abandoning the plug-in on Linux.
Adobe will no longer be bringing new versions of the Flash Player to Linux. Google will take over this task, and support the latest versions of Flash Player on Linux. The catch, the player will only work on Google Chrome.
Google Chrome supports the Pepper plug-in API which isn’t supported by any other browser, and Flash Player on Linux will support only that, thus essentially cutting off any other browser users from running the latest Flash Player on Linux.
It is important to note that many Linux distributions actually have Chromium for Linux, not Google Chrome; Chromium will not bundle Flash Player but should probably run it.
As for all other browser users, Adobe will support Flash Player 11.2 (with the latest security updates and such) on Linux for another five years.
As we said before this is the ugly side of having a plug-in become an essential part of the internet. Plug-ins aren’t bad, they are brilliant idea in fact. Web standards don’t, can’t and in fact should not even try to solve all needs of all people. There will always be some things that are best left to a plug-in, because they are only needed by a few people. Unfortunately Flash Player is a plug-in that has become an essential part of the internet experience, which means that the internet is dependent on the whims of one company.
The web and web standards should be everywhere, and for every one, yet for many people this is now a choice of using the OS they want, and being able to experience the content they want on the web. That too at a time when Linux is rapidly gaining importance. Flash could have been the gaming platform that reaches all platforms, but it is clear that is not to be.
It would be wise for game developers to just make the transition directly to WebGL rather than take this Flash step in the middle. It seems like a stop-gap now anyway. What happens when web standard games reach on par with Flash and the Adobe’s focus shifts again?
The web standards process has been slow, but it is exactly to avoid problems such as these. Web standards made now have to live forever, and maintained forever in every web browser, on every platform available now and in the future. When Mozilla or other browser vendors refuse to immediately implement new features such as Dart, or WebP, it is exactly because of this burden. Because once it is in a browser, it can’t go away, it will have to work forever, it will have to be supported forever for the internet to work. Adobe has shown that it is clearly not up to the challenge.