In a bold move that will be remembered for quite some time, Adobe announced tonight that the Flex SDK is going open source. The released source code will include the Flex framework classes, the mxmlc and compc compilers, the ActionScript debugger, and an assortment of other tools. Like Tamarin, the open source project created from Flash Player’s virtual machine, the Flex SDK will be governed by the Mozilla Public License. The process of going open source will happen over time with several major milestones in the coming year.
To begin, Adobe intends to open their bug database for Flex to the public in June of this year. Anyone will be able to find and file bugs against the Flex framework, and anyone can start contributing code to improve the upcoming Flex 3. You won’t need to be an Adobe employee for your code to be used by millions of developers. If you take a look inside the current release of the Flex SDK, you’ll notice that the source code to the framework ActionScript classes are already available, though under more restrictive licensing, so everyone can take the first step to submit code related to their favorite features as soon as the database is opened.
In time (probably around December), the complete source code will be available via a Subversion repository so that everyone can check out the latest changes and enhancements. This will include nightly builds and other fun goodies. It appears that they intend to place the project on SourceForge, but that may be a parallel distribution mechanism along with Adobe-controlled servers. During this milestone, the Java source code for the compilers will be opened. The ActionScript compiler in Flex comes from the same codebase as the compiler in Flash CS3. Contributions to this project will more than likely improve not only Flex, but all other Flash Platform developer tools that rely on this compiler.
An announcement like this one requires some additional points to avoid confusion. The open source project for Flex will not include the Flex Builder Eclipse plugin, the Flex Charting components add-on, or Flash Player. As mentioned previously, the Tamarin project includes part of Flash Player already, but some portions of the player, such as media codecs, are licensed by Adobe from third-parties, and Adobe does not own the rights to release that source code. This new project is aimed at the developer tools for Flex. In other words, it contains the core Flex SDK, but not the platform it runs on.
The Effects of an Open Door
Since the Macromedia merger, Adobe has undergone many interesting and awesome changes. Macromedia Labs expanded to include other Adobe products, like the Photoshop CS3 beta. An early alpha of the new Apollo desktop runtime has been released there too. Obviously, I’ve already mentioned the open sourcing of Tamarin. Now we have the landscape surrounding Flex undergoing major and exciting changes.
As someone close to the company mentioned to me today, developers these days look for open tools. They shouldn’t need to pay for a compiler. If they have an editor of choice, they want to easily integrate these core tools with it. They want to be able to improve those platforms that they work with daily, or to fix bugs they discover. In some cases, they want the ability to be revolutionary.
Adobe just made that possible.
Though the SWF specification has been somewhat open for some time, the opening of the Flex compiler will be a major new step that can only be good for the company and the community. We can build SWFs using ActionScript with Adobe tools right now, but in the future what’s to stop anyone from making Java or Python generate SWFs? That main SWF compiler will soon be available to anyone, and I would hope that a compiler expert could go nuts with this sort of thing. Look at Nicolas Cannasse’s haXe as an example of a similar, but still different, language already evolving around the SWF format. This source code will make building something like haXe a bit easier because smart compiler engineers have a reference implementation from which to get started.
In related technologies, the .NET framework allows similar language agnosticity, which brought us Iron Python. Adobe just fired a shot across the bow of Microsoft’s great ship to say “we’re doing that too, but better!” The only way I could see Microsoft beating Adobe with a cool announcement would be to open source the entire Silverlight runtime. Can you imagine? That would be an interesting day, to say the least.
Ultimately, Adobe just gave themselves a world of new competition. Will you need to buy Flash CS3 or Flex Builder anymore? Maybe another company will build better tools around the SDK. I’m excited about Adobe’s confidence and I have a strong feeling that they’ll lead this project well. I hope that any crazy new ideas emerging from the community will push Adobe to experiment more and to continue to build excellent tools to compete with free or otherwise stronger third-party products that may appear on the market after this all happens. Competition is important to innovation, and between this announcement today, and the potential competition coming from Silverlight in the near future, I’m glad Adobe is forging ahead bravely.
I think I’ve said it before, but I can’t help but say it again. Right now is the best time ever to work with Flash and Flex.