Adobe has submitted a proposal to accept their Cindyflexingrella to a very reputable orphanage: Apache Software Foundation. Overall, this can be a great news for the Flex community, which as opposed to Adobe, can afford to allocate enough of strong software engineers to make this framework flourish.
There were lots of applications for becoming initial committer to this new Apache Flex project. Only 25 of them made the list, and I’m happy to report that Farata’s own Anatole Tartakovsky has been accepted to this list. Just to make sure you understand Anatole’s caliber, I can tell you that five years ago he sifted through 16 thousand lines of code of Flex most complex component – DataGrid – and turned it into a more elegant object by removing about a half of its code. Back than, we had no easy way to make this component a part of Flex SDK.
The list of committers includes a number of people knowing really well what Flex has under its skin: Alex Harui, Michael Labriola, Peter Elst, to name a few. So the brain power is in place. But there are two sections in this proposal that bother me:
Known risks.
Moving from a corporate-led project to the Apache model of collaboration is a challenge, and Adobe is committed to help making the transition as smooth as possible, by delegating employees to work on the new project. We would like to see more free collaboration from the community but with the same principles that has kept Flex with the high-quality design and ease-of-use it has maintained under Adobe’s governing hand.
If I’d read this paragraph two months ago, it would sound great to me. Not anymore. It includes the words “Adobe is committed to…”. Sorry, can’t trust to any commitments made by this company that published an that infamous blog on a day that should be remembered as 11/9.
The second section that can kill this project is titled “External Dependencies”, but should be renamed into “Strings Attached”:
Some parts of Flex development rely on third-party libraries. The complete list is still being determined but some are:
• Adobe AIR SDK
• Adobe Flash Player SDK
• Adobe Text Layout Framework (TLF)
• Adobe Open Source Media Framework (OSMF)
• Adobe Font Engine (AFE)
Flash Player is a VM. Flex framework is pretty much useless if a VM won’t support it. Even if the next version of Apache Flex will include some killer features, how good it is if Flash Player won’t support them? It’s hard to believe that Adobe will plan future releases of Flash Player based on the needs of Apache Flex. I don’t like the phrase “We have made it clear to our community that going forward, the community, rather than Adobe, will determine the future of Flex.” Dear Adobe, we can’t determine the future unless you open source Flash Player. Open source might have an alternative though – not to use Flash Player as a runtime. Flex compiler makes a couple of passes producing first the ABC code (ActionScript Byte Code), and only then the byte code for Flash Player to run. If an open source community will come up with a compiler to turn ABC code into another run-time engine, Flash Player won’t be needed (this is how Adobe AIR apps get deployed in iOS now). But what other runtime?
The other big ticket item is Adobe AIR SDK. This is an great SDK for cross-platform desktop and mobile software development. AIR relies heavily on Flex SDK, and keeping in sink future releases of Apache Flex and Adobe AIR is not a trivial task.
What about the tooling? Flash Builder is always lagging behind, but Flex developers are using it. The proposal reads, “The existing Flash Builder trademark will be used as a commercial entity.” I’d rather see Flash Builder at Apache, but this is not a show stopper. JetBrains IntelliJ IDEA is a better IDE than Flash Builder and, hopefully, they’ll become a tool of choice for Apache Flex developers.
To summarize, I’m glad that Flex framework is given to the public, but the sky is not as bright as I’d wish it to be.
To make this post somewhat technical, I’m including a code fragment that Flex developers will understand.
<s:transitions> <s:Transition id="greatMove" fromState="Adobe" toState="Apache"> <s:Sequence id="t1" targets="{[p2]}"> <s:Wipe id="ADBE" direction="left" duration="1000"/> <mx:Glow id="ApacheFlex" duration="1000000" alphaFrom="1.0" alphaTo="0.3" color="0x00FF00"/> </Sequence> </s:Transition> </s:transitions> |
I didn’t even try to compile the code above. Feel free to try it out, improve, and submit back to share with Apache Flex community.
Yakov Fain

