Adobe has published a Flex Roadmap which I guess is one of those “Let’s end the speculation” pieces which nevertheless still leaves you with questions.
Flex is the XML-based language for coding applications for the Flash player or runtime. Doubts about Adobe’s long-term strategy for Flex appeared last November when Adobe announced a shift in its business strategy towards digital media and marketing as opposed to enterprise solutions. In addition, Adobe stated that:
In the long-term, we believe HTML5 will be the best technology for enterprise application development. We also know that, currently, Flex has clear benefits for large-scale client projects typically associated with desktop application profiles
I imagine that this has made it difficult for Adobe’s partners to market Flex-based solutions, a problem that this new roadmap tries to address. It begins in forthright style, almost contradicting the earlier statement:
Adobe believes that Flex is the best solution for enterprise and data-centric application development today, and that moving Flex into a community-driven open source project ensures the continued development and success of Flex for years to come.
The paper goes on to iterate the benefits of Flex development, including what is perhaps the most important:
Flex offers complete feature-level consistency across multiple platforms, browsers, and devices
Before you say it, this can include Apple iOS thanks to the packager for iOS which wraps the Flash runtime with your app as a single native app. Mobile support for AIR (but not the Flash player) will continue on “current and future devices and OS updates including iOS 5, iPhone 5, iPad 3, and Android 4.” AIR is the runtime packager which lets you run Flash applications as if they were native apps. As for BlackBerry, Adobe says that RIM plans to continue supporting it, making it sound as if Adobe is not taking responsibility for it.
It gets worse though. What are the implications of Adobe handing over Flex to the Apache Foundation? Fewer Adobe engineers is one:
While under this new model Adobe will provide fewer engineering resources than in the past, we are working with the Flex developer community to increase the total number of active contributors and resources
That said, there will be a team of full-time Flex SDK engineers from Adobe working on the Apache Flex project. Adobe will also contribute BlazeDS (fast messaging and server-side remoting between Flex clients and Java application servers), as well as the forthcoming Falcon 1 compiler and the experimental Falcon JS which compiles ActionScript to JavaScript. Adobe will not contribute LiveCycle Data Services or LiveCycle Collaboration Services, nor will AIR for Linux be revived.
The further down the document you get, the more complications appear. Adobe promises continued support for the current Flex 4.6 SDK in future Flash players for five years, but support for Apache Flex SDKs is not Adobe’s responsibility:
While Adobe will ensure that the Adobe Flex SDK 4.6 and prior will be supported in future versions of Flash Player and AIR, it will be the responsibility of the Apache Flex Project to test future versions of the Apache Flex SDK against released Adobe runtimes to ensure compatibility and proper functioning.
Another little downer is that since Adobe cannot sign Apache-created Flex shared libraries, they will not be cached globally by the Flash player, but only per domain.
Adobe also notes that:
Flash Platform technology will continue to evolve with a focus on gaming and premium video.
which maybe is not what a Flex developer wants to read.
Then there is the tooling, and the paper confirms that Flash Catalyst is discontinued, and that Design View and Data Centric Development tools will be removed from Flash Builder, even including updated 4.x versions. Adobe says this is “In order to better support future Apache-derived Flex SDKs.”
One last point of interest: regarding Flash Player and AIR for Windows 8, Adobe says:
For information on support in future operating systems, please refer to the Flash Player Roadmap White Paper, which will be published shortly.
I guess what we are waiting to hear is whether and when Adobe might support the new Windows Runtime with AIR and the Flash Captive Runtime, since the Flash plug-in will not work on the Metro browser in Windows 8.
So what is Adobe really saying, and what is the future for Flex development? It is all very well saying now, three months after signalling a shift to HTML5, that Flex is still a great platform, but the tangible facts are these. First, Adobe is investing less than before in Flex. Second, Flex will be with Apache and it is up to that nebulous thing the community to determine what happens to it.
The problem is that the future of Flex is wedded to the future of Flash, and the general belief is that Flash is gradually giving way to HTML5, and AIR giving way either to native code or to HTML and JavaScript packaged as an app via PhoneGap or similar.
Kudos to Adobe for spelling out more clearly what is happening to Flex and AIR; but my sense is that the platform will still decline.
One thing that Adobe did right to the developers is they open sourced their stack. Microsoft had killed a lot of products like VB, VFP without making it possible for the community to tend to it.
I agree that Adobe is trying to do the right thing. One complexity though is that the Flash player is not open source, so Flex is open source depending on closed source which is a tricky position. Some of the roadmap reflects that, eg. the bit about whose responsibility it is to make sure Flex works on later Flash players.
Tim