I have mentioned before my feelings on Flex but here is a quick recap: I was a big fan of Flex when Flex 2 first came out, but off late I have been disappointed with it enough that I have started working on my own open source UI framework called OpenPyro. And the questionable decisions being made around the Flex 4 api are not helping my feelings towards it. And I am relieved that I am not the only one who feels this.
I just finished reading Simeon Bateman’s post on how just making the source code available does not make a successful open source project, and how Adobe is pretty much failing with Flex as a genuine open source project because all decisions and priorities are being made behind closed doors, and I couldnt agree more (I am so glad he started this one and not me, at least the we’ll share the wrath of Flex devs who dont agree 😉 ). He also recently posted a tweet wondering if creating a branch off the Flex framework trunk with patches to not require the Fx prefix to the Flex4 components would be a good idea. I think it will be, but I think we can and should go beyond.
I have no idea how many bugfixes and patches Adobe has got so far on the framework and I seriously doubt there are as many. Part of the problem is Flex is a behemoth of a framework and there aren’t that many people who understand the project at its core. I personally think the framework needs some serious refactoring to improve performance, filesize and more importantly to reduce the complexity and the deep inter-coupling of the framework. However, there is almost no immediate way this would let Adobe make more money through a new toolset so its (understandably) not Adobe’s priority.
Whats also interesting is that Flex has kind of crippled growth in the Actionscript based application frameworks domain. Having options is (almost) always a good thing and multiple projects keep forcing each other to evolve. But there isnt really another framework that competes with Flex that has gained any serious traction. There are a few frameworks that some companies have released but none that have gained any number of external contributors or that have become familiar names in the developer community. There are a few MVC frameworks like PureMVC, Mate, etc and such which have survived mostly since they dont compete with Flex (Flex is a pure UI framework and Adobe’s MVC framework Caringorm is just bad). The sad fact is I have met so many Flash/Flex developers who are ridiculously smart and if they came together, would give the Flex framework a real run for their money.
Flex builder is partly to blame. Flex builder is by far the best development environment out there for Flash projects, and is geared towards Flex only, giving you the option to develop in Actionscript but not really allowing any kind of system to integrate third party libraries. In fact it took me a fair amount of googling to figure out how to use Flex builder to create an Air application without using Flex. Do you know how to do that ? Also the preview build for Flex Builder 4 (Gumbo) includes support for unit testing for Flex projects but not AS3 projects. WTF. Shouldn’t AS3 projects be the first priority and Flex just being an extension of that ?
Given all this, as a developer community we need to come together. Flash and Actionscript need to go beyond Adobe. A community controlled branch would really help but I am not sure how the MPL license (under which Flex has been released) permits that kind of forking. Also, refactoring the Flex framework is a HUGE task. (anecdote: I had a conversation with the manager of the Philadelphia Flex User Group Derek Wischusen the other night who told me he had another WTF moment with Flex when he tried to use the Base64Decoder class in an AS3 project and ended up pulling the entire Flex framework since the class references ResourceManager that of course was tightly coupled with a huge part of Flex. Things like this should not be acceptable. ). If you are a Flex developer, evaluate other projects out there. If you see one that may have potential, get into it a little more, blog about it at least and contribute to it if possible. If you have an open source framework thats interesting, pimp it as much as you can and get feedback and encourage participation any way you can (and also leave a comment here, I am trying to take stock of actionscript frameworks out there).
What do you think ?