Adobe roadmap for the Flash runtimes
Adobe roadmap for the Flash runtimes
Download a PDF version of this white paper (PDF, 265 KB)
This document provides an overview of the Adobe Flash runtimes and a roadmap for their development. The primary goal is to provide guidance as well as insight into Adobe’s current thinking and plans around core Flash functionality contained within Adobe Flash Player and Adobe AIR over a time frame of the next one to two years.
Note: This document is current as of the publication date and contains information that is subject to change. The further out the time frame being discussed, the more uncertain the specifics of the roadmap are. If there are significant changes to plans around items discussed within the white paper, the document will be updated in a timely manner. The latest version of this document can always be found at adobe.com/go/flashplayer_roadmap.
For the past decade, Flash Player and, more recently, Adobe AIR have played a vital role on the web by providing consistent platforms for deploying rich, expressive content across browsers, desktops, and devices. Beginning as a platform for enabling animation, the Flash runtimes have evolved into a complete multimedia platform, enabling experiences that were otherwise not possible or feasible on the web.
Looking forward, Adobe believes that Flash is particularly suited for addressing the gaming and premium video markets, and will focus its development efforts in those areas. At the same time, Adobe will make architectural and language changes to the runtimes in order to ensure that the Flash runtimes are well placed to enable the richest experiences on the web and across mobile devices for another decade.
The Flash runtimes refer to the primary runtimes, Flash Player and Adobe AIR, built on top of a set of core multimedia technologies that provide a consistent platform for creating and deploying expressive content and applications that can run across browsers, operating systems, and devices.
Flash content is developed using the ActionScript 3 language and is packaged as a SWF file or compiled to native formats, which contain multimedia assets and code for execution and display within the Flash runtimes.
Flash runtime core
The Flash runtime core contains the base APIs and functionality that individual runtime distributions are built on top of. The primary runtime distributions are the Flash Player browser plug-in and Adobe AIR, which provide additional APIs and functionality specific to the host environment in which they run.
Unless otherwise specified, this document refers to functionality defined in the core Flash runtime, and applies to the specific runtime distributions that contain this functionality.
References to “Flash runtime core” in this document refer to this core Flash functionality shared by the runtime distributions.
References to “Flash runtimes” refer to the runtimes that are built on top of the core Flash functionality. These runtimes include Flash Player (browser plug-in) and Adobe AIR (stand-alone applications).
Adobe Flash Player browser plug-in
The Adobe Flash Player is a browser-based plug-in built on top of the core Flash functionality that provides uncompromised viewing of expressive applications, content, and videos across browsers and operating systems.
References to “Flash Player” and “Flash Player browser plug-in” refer to the Flash Player browser plug-in runtime.
Adobe AIR is a desktop and mobile-based runtime built on top of the core Flash functionality that allows developers to create and deploy Flash based content as stand-alone desktop and mobile applications across personal computers, operating systems and devices.
Flash Player was originally released in the late 1990s as a browser-based plug-in for displaying simple vector-based graphics and animations. It quickly gained popularity with animators as it provided a rich, creative medium for displaying animations on the web, something that, at the time, was difficult if not impossible to do directly in the browser.
Over time, Flash Player added new features and functionality that greatly expanded what was possible within the player specifically, and on the web in general. Some of these features include the following:
- Vector-based graphics
- Audio (including MP3)
- Microphone and webcam access
- Low-level bitmap manipulation
- Binary-based sockets
- Strongly typed, class-based programming language
- Hardware-accelerated 2D and 3D content
As new features were added, designers and developers would create new types of content for the web, which in turn ensured that users continued to install and use Flash Player. This became a virtuous circle. Developers could create new types of expressive content because Flash Player offered new features with a near-universal reach on the web, and users continued to install Flash Player because it provided access to some of the most expressive content on the web.
In 2008, Adobe released a desktop runtime that contained the core Flash runtime functionality. Named Adobe AIR, the runtime allowed developers and designers to create and deployed Flash based content as stand-alone applications, initially on desktop operating systems and more recently on mobile devices.
Strategic focus of the Flash runtimes
Adobe believes that the Flash runtimes are particularly and uniquely suited for two primary use cases: creating and deploying rich, expressive games with console-quality graphics and deploying premium video.
This shift in focus for Flash does not mean that existing content will no longer run, or that Flash cannot be used for content other than gaming and premium video. However, it does mean that when prioritizing future development and bug fixes, gaming and premium video use cases will take priority.
Games are immersive, interactive content whose users demand best-in-class richness, consistency, performance, and reach. The ability of the Flash runtimes to deliver integrated vector and raster graphics, animation, synchronized dynamic sound, video, and responsive performance across the web makes it the standard platform for both casual and increasingly complex games on the web.
Games continuously push the technological barriers, and the Flash runtimes allow Adobe to deliver the new capabilities demanded by games faster than virtually any other technology, while providing the widest reach and audience. The Flash runtimes provide a number of key advantages and differentiators as a gaming platform, including the following:
- Near-universal reach on PCs via the Flash Player browser plug-in, and on mobile devices via Adobe AIR
- Ability to quickly add new features and make them available to the widest audience
- Fully hardware-accelerated 2D and 3D rendering support that provide console quality graphics
- Rich gaming developer ecosystem
- Robust, object-oriented programming language
- World-class creative and developer tooling including Adobe Flash Builder, Adobe Flash Professional, Adobe Photoshop, and Adobe Illustrator
Adobe believes that Flash is the game console for the web providing a foundation that allows game developers to deliver rich games and experiences more easily to more people than any other platform. The Flash Player browser plug-in alone provides frictionless reach to 99% of personal computers with no additional install (11 times more people than the best-selling hardware game console). Adobe AIR allows developers to package their Flash based games as native apps to seamlessly reach smartphones and tablets, including Apple iPhone, Apple iPad, Android smartphones and tablets, and the Kindle Fire.
Adobe is fully focused on creating a robust business around gaming. This includes, but is not limited to, the following:
- Formalized game developer program
- Game services
- Fully productized support that enables developers to leverage C and C++ code and libraries in their Flash based games
This document will be updated once Adobe releases more specific information around its plans for gaming.
The Flash runtimes remove friction and open up the largest possible audience for game developers to deliver and monetize exciting games. The largest game publishers make billions of dollars each year by investing in Flash based games. Games are often the richest, most demanding interactive experiences. Adobe believes that the rapid innovation and consistent reach uniquely possible via Flash will continue to make it exceptionally well suited for gaming.
Adobe Flash has enabled the explosive growth in online video by providing a high-quality, secure, and consistent solution across browsers and operating systems. Flash is the “video engine” of online video as it provides high-quality and consistent codecs, streaming protocols, and content protection technologies. In addition, Flash provides developers with low-level access that allows them to program custom behaviors or protocols, which is otherwise not possible in stacks that only provide a high-level API.
Online video is still in its infancy and Adobe believes we will see more broadcast and premium content available online. Consumption of this premium content will happen where consumers are, which means video needs to reach not only desktops but also tablets, phones, smart TVs and other video streaming devices. Premium content also needs to be secure, high quality, able to provide engaging experiences and at the same time allow for monetization and analytics.
Adobe believes that Flash Player will continue to stay at the forefront of online video by innovating in key areas. These include the following:
- Bringing Adobe’s video streaming and content protection technology to more platforms in native formats
- Supporting the needs of premium content owners
- Closer collaboration with hardware vendors to provide high-performance quality experiences
Adobe believes that Flash has a number of fundamental and unique advantages for video:
- Single and consistent player and codec support across browsers, platforms, and operating systems
- Support for content protection (single DRM), which enables premium video content to be licensed for online distribution
- Mature, full-featured, proven solution that provides a “mission critical” video platform for premium content owners, including support for ad insertion and analytics
For both client consistency and services such as advertising and analytics that drive revenue, Adobe is the only company that can meet the needs of premium content owners. Adobe’s goal is to help premium content owners bring more of their content online and to monetize this content to its maximum potential. Its advanced video solutions leverage the Flash runtimes to provide a secure way to deliver high-quality content on the plethora of devices that consumers use and do so without much friction. Second, Adobe’s monetization technologies enable content owners to extract the most value from their content by allowing ads to be inserted dynamically and enabling analytics, reporting, and audience segmentation.
This section contains a roadmap for Flash runtime releases and features for the next two years. This document will be updated as we continue to define and extend this roadmap beyond the initial two-year time frame reflected below. The information is provided as a guide to help developers and content providers understand the high-level direction of the Flash runtimes, as well as specific features that are being planned or considered.
Please note that the roadmap represents Adobe’s current plans and thinking around the Flash runtimes, and is subject to change. The further into the future a planned release is, the more likely specifics around that release will change.
This document will be updated as information and plans change.
In the past, Adobe AIR and the Flash Player browser plug-in have followed similar but separate paths. Generally, new Flash APIs and capabilities would be released via the Flash Player plug-in first, and then eventually included in an Adobe AIR release. Moving forward, Adobe AIR and Flash Player browser plug-in releases will be increasingly synchronized and released simultaneously.
Adobe AIR 3 added the ability for developers to extend the API surface and functionality of the runtime by bundling native extensions into their applications. These extensions are written in lower level languages, and can provide access to features and functionality not exposed via Adobe AIR.
Future Adobe AIR development will focus on incorporating features from the core Flash runtime. While desktop and mobile-specific APIs will be developed, they will not be the primary focus for Adobe AIR development efforts. Developers requiring functionality not available directly via Adobe AIR APIs should consider adding that functionality via the native extensibility API.
Flash Player 11.2
Flash Player 11.2 is targeted for release in the first quarter of 2012. Development focuses on adding features that are key for the gaming and video markets.
Some of the features planned for this release include the following:
- Mouse-lock support
- Right and middle mouse-click support
- Context menu disabling
- Hardware-accelerated graphics/Stage 3D support for Apple iOS and Android via Adobe AIR
- Support for more hardware accelerated video cards (from January 2008) in order to expand availability of hardware-accelerated content.
- New Throttle event API (dispatches event when Flash Player throttles, pauses, or resumes content)
- Multithreaded video decoding pipeline on PCs, which improves overall performance of video on all desktop platforms
Flash Player “Cyril”
Following the Flash Player 11.2 release, Adobe plans to do another release, code-named “Cyril”, which is targeted for a release in the second quarter of 2012. This release focuses on enabling features and functionality key for the gaming market, as well as addressing popular feature requests from developers.
Some of the features being planned for this release include the following:
- Keyboard input support in full-screen mode
- Improved audio support for working with low-latency audio
- Ability to progressively stream textures for Stage 3D content
- LZMA compression support for ByteArray
- Frame label events
Flash Player “Dolores”
Adobe is planning an additional Flash Player release in the second half of 2012. Code-named “Dolores”, this release focuses on enabling features and functionality for the gaming market, as well as improvements for general Flash Player use cases.
Some of the features planned for this release include the following:
- ActionScript workers (enables concurrent ActionScript execution on separate threads)
- Support for advanced profiling
- Support for more hardware-accelerated video cards (from 2005/2006) in order to expand availability of hardware accelerated content
- Improved ActionScript performance when targeting Apple iOS
- Performance index API to inform about performance capabilities of current environment
- Release outside mouse event API
Flash Player “Next”
While Adobe is working on releases for 2012, including 11.2 and the subsequent 2012 release, we are also modernizing the Flash runtime’s code base in order to ensure that the Flash runtimes meet the needs of developers over the next five to 10 years. This work is referred to in this document as Flash Player and ActionScript “Next”.
This work includes, but is not limited to, the following:
- Refactoring and modernizing the current core Flash runtime code base
- Work on the ActionScript virtual machine
- Updates to the ActionScript language
The primary goal of this work is to provide a modern implementation of the core Flash runtimes and the ActionScript virtual machine in order to significantly improve script execution performance and provide a foundation on which Flash can move forward over the next decade.
Currently, initial Flash runtime releases that result from this work are planned for 2013.
The range of applications and content for ActionScript has shifted significantly in recent years, while the ActionScript 3 language remains virtually unchanged since its introduction in 2006. Adobe believes it is time to revise the language to carefully steer its further evolution towards greater expressiveness as well as productivity and performance gains.
From a language design standpoint, Adobe uses the following assumptions as a guide for next-generation ActionScript development:
- Increasing demand for long-term productivity benefits such as robustness, modularity, and maintainability to complement shorter-term productivity benefits characteristic of scripting languages, such as speed of development
- Demand for high performance increases
- Demand for hardware utilization increases
First, Adobe plans to make significant performance increases in the short term with a goal of continuing performance improvements over the long term. Performance is the primary goal when we approach how to evolve ActionScript. Second, Adobe aims to increase developer productivity by simplifying the language, improving tool support, and boosting bug prevention. Finally, having reduced unnecessary complexity, we will be in a position to innovate within the Flash runtimes much more quickly.
Below are a few items being explored for the next generation of the ActionScript language and virtual machine:
- Stringent static typing as default, with optional dynamic typing: Most stretches of most programs are expected to benefit from static typing. However, ActionScript 3 tends to lapse into dynamic typing all too easily in places where absolutely stringent static typing would be preferable. This will be corrected. Dynamic typing will still be available when needed, but it will no longer be the default for ActionScript, and it will need to be enabled explicitly.
- Type inference: Type declarations will only be necessary in certain strategic places. Everywhere else the compiler will automatically infer suitable type declarations and treat the whole program as statically typed, even though the programmer does not have to state any types. Thus the convenience of untyped programming can be approximated quite well, while providing the performance advantages of typed programming.
- Hardware-oriented numeric types: For example,
long, etc. (the exact set of types is still under discussion). Currently in ActionScript 3 integer values can overflow into floating point values. This will be changed so that numeric operations will never change the underlying representation of the numeric. We foresee this addition greatly reducing implementation complexity and improving runtime performance.
These are just a few areas that we are focusing on. We will update this document as our thinking evolves and solidifies around how the language and virtual machine will change.
The next version of ActionScript will be an evolution of ActionScript 3, but in some instances may not be completely compatible with ActionScript 3. We expect that any migration from ActionScript 3 will be significantly less burdensome than the move from ActionScript 2 to ActionScript 3.
Regardless, we are exploring options for tooling that would either ease or automate this transition.
Current ActionScript 3 content will continue to run in the Flash runtimes, although it may not run in the same virtual machine as the latest iteration of ActionScript. This is a similar model for how ActionScript 2–based content runs in Flash Player today.
This section contains general information and guidance around the Flash runtimes.
Adobe publishes a list of supported platforms for each Flash runtime release. The list of supported platforms for each release can be found on the Adobe site, with the most recent list of supported platforms found atadobe.com/products/flashplayer/systemreqs/.
Support for the Flash Player plug-in for browsers and Adobe AIR for PCs and devices may differ. Please refer to their respective release notes for more information.
Adobe is committed to providing both the Flash Player browser plug-in and Adobe AIR for personal computing operating systems. In some cases, Adobe may work with third parties to help in developing and/or distributing Flash runtimes for various browser and operating system configurations.
Apple OS X:
Adobe is committed to providing support for both the Flash Player browser plug-in, as well as Adobe AIR for Mac OS X operating systems. On Mac OS X operating systems, Adobe AIR applications can be distributed both directly and via the Mac App Store.
We are currently working to enable Adobe AIR applications to be distributed on the Mac App Store under the new Mac OS X application sandboxing requirements. We expect to have support available as part of the “Cyril” runtime release.
Adobe is committed to providing support for both the Flash Player browser plug-in, as well as Adobe AIR for Windows based operating systems.
Microsoft is currently developing Windows 8, which is the next generation of its Windows operating system. The operating system includes a number of different user interface configurations (desktop and Metro) and targeted processor chipsets (x86/64 and ARM), which create a number of different development targets for the Flash runtimes.
Adobe is currently working closely with Microsoft to finalize details around supported configurations for Flash Player and Adobe AIR on Windows 8. This document will be updated once this has been finalized and release schedules are available.
Adobe has been working closely with Google to develop a single, modern API for hosting plug-ins within the browser. The PPAPI, code-named “Pepper”, aims to provide a layer between the plug-in and browser that abstracts away differences between browser and operating system implementations. You can find more information on the Pepper API at http://code.google.com/p/ppapi/.
Because of this work, Adobe has been able to partner with Google in providing a “Pepper” implementation of Flash Player for all x86/64 platforms supported by the Google Chrome browser. Google will begin distributing this new Pepper-based Flash Player as part of Chrome on all platforms, including Linux, later this year.
For Flash Player releases after 11.2, the Flash Player browser plug-in for Linux will only be available via the “Pepper” API as part of the Google Chrome browser distribution and will no longer be available as a direct download from Adobe. Adobe will continue to provide security updates to non-Pepper distributions of Flash Player 11.2 on Linux for five years from its release.
Flash Player will continue to support browsers using non-”Pepper” plug-in APIs on platforms other than Linux.
Adobe will be providing a debug player implementation of the Flash Player browser plug-in on Linux, and will update this document once there are more details on how it will be distributed.
As of Adobe AIR 3, Adobe has discontinued support for Adobe AIR for Linux operating systems.
Flash Player 11.1 is the last release of the Flash Player plug-in for mobile browsers. Adobe will not add support for new mobile device configurations (chipset, browser, OS version, etc.). Adobe will continue to provide critical bug fixes and security updates for existing device configurations and will also allow our source-code licensees to continue working on and releasing their own implementations.
Adobe continues to actively invest in enabling developers to create and deploy Flash based content as mobile (and desktop) applications via Adobe AIR.
Just as with desktop and mobile, Adobe’s future technology innovation and outbound marketing activities for television will be focused on two use cases: premium video and advanced gaming.
Today, Adobe supports Flash based video and gaming applications built with two different models:
- Adobe AIR for TV
- HTML applications that leverage Flash Player to play back video content (in this model, Flash Player acts as the “video engine” within an HTML application)
We are firmly committed to the television space and will continue to optimize our technology for TV hardware that enables great video and gaming experiences.
While we have historically licensed Flash Player for general web browsing on TVs , we do not recommend this approach given the difficultly of ensuring consistent and high-quality “full web” browsing on TV hardware.
For more information
Document release history
- February 23, 2012: Minor corrections and clarifications; no policy or plan changes
- February 22, 2012: Initial release