Last year, Adobe Systems narrowed Flash Player's scope. It canceled the browser plug-in for mobile devices. It shifted development resources toward competing Web standards.
But it's not giving up on Flash.
In an attempt to patch up communications with Flash programmers, Adobe yesterday published a Flash Player road map that promises many improvements this year, with versions code-named Cyril and Dolores. Then the document adds, "We are also modernizing the Flash Player code base in order to ensure that the Flash runtimes meet the needs of developers over the next 5 to 10 years."
"Runtime" refers to the software foundation that executes programs written in Flash's ActionScript language. Flash Player is a browser plug-in that runs those programs on Web pages, but the same foundation built into Adobe's AIR software accommodates standalone programs, too.
That runtime has had a long run. In its heyday, Flash had a lot to offer. It eased cross-platform programming, spanning many browsers so programmers didn't have to worry about their differences. And it popularized features such as streaming video, vector graphics, Webcam and microphone support that were immature or missing from browsers.
As Adobe expands beyond Flash, it's become active in standards development, begun adding products such as Edge and Muse that cater to Web programmers and designers, and acquired PhoneGap and TypeKit for a better collection of in-house technology.
It's a tough balancing act for Adobe. The more territory the company cedes to other programming methods, the less cross-platform leverage Flash programmers get.
Mobile apps for iOS and Android can be packaged with AIR, and Web apps often can't match the abilities of Flash apps and native apps. But Flash already has overstayed its welcome for many developers, and scaling back its future scope could well accelerate programmer defections.
Here's Adobe's current view of the balance between Flash and Web standards, according to the road map:
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.
Big changes coming with ActionScript "Next" govern how it will handle variables -- specifically, a shift toward the more formal "typing" direction that requires programmers to declare whether a variable is an integer, floating-point number, or other specific types of data. Typed variables are more of a hassle for programmers, but they enable programming tools to produce faster software.
It's not clear just how far Adobe will go, especially since it's evidently weighing the merits of strict typing requirements versus type inference, in which Flash would have the job of making its best guess and optimizing software from there. Either way, it's potentially a big change for programmers, though Adobe promises it shouldn't be as disruptive as past ActionScript changes.
Adobe also announced in the road map that it's scrapping Flash Player for Linux when using the NPAPI (Netscape Plug-in Application Programming Interface) mechanism. Flash will still be available through Chrome for Linux, which uses the Pepper API that Google developed.
Adobe's change means, for example, that Firefox on Linux, which supports only NPAPI, won't be able to use the Flash Player plug-in. Adobe ditched AIR for Linux last year. Flash Player using NPAPI will be available on Windows and Mac OS X.
Adobe released the road map in part because the company wanted to do a better job handling developers who've been whiplashed by recent Flash changes.
"We understand that we have damaged our trust and credibility with the community over how we have communicated some of the recent changes around the Flash platform and that trying to regain that trust is a long term process," said Flash evangelist Mike Chambers in a blog post yesterday. "We have to be clear and open around our plans around the Flash runtimes, and then demonstrate that we can follow up those plans with actions."
New Flash versions
Adobe has a long list of features for Flash Player 11.2, due this quarter, for Cyril, due in the second quarter, and for Dolores, due in the second half of 2012.
Here's the list of features for Flash Player 11.2:
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 the desktop which improves overall performance of video on all desktop platforms
Here's the plan for Cyril:
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
And here's the plan for Dolores:
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
After that, things get vague, but Adobe promises performance increases, better hardware utilization (a longstanding gripe from Apple users), and better code-handling features for those who must reckon with complex programming projects and requirements for long-term support.