Flex given to the Apache Software Foundation – round-up and opportunities

This post is the 1002nd published on flex-tutorial.fr since January 2008, and it is especially important because it addresses the future of the evolution of Flex. The 1000th article was actually this same article but in French. Due to popular  demand and Twitter RTs, I decided to translate it into English, adding a few things I missed when writing the original article

Flex Community Summit

Last week, I was invited  by Adobe to spend 2 days at their offices in San Francisco for a rather special Flex Community Summit. 2 days of presentations / lectures on the following points:

  • Clarify the message given by Adobe
  • Explain the consequences of the Flex project being given to Apache
  • Explain how the Apache Software Foundation and their hosted projects actually work
  • Bring the community together to get its feedback and participate in open discussions

The latest announcements made by Adobe were quite rushed and often clumsy. It must be said that the change of strategy was a surprise to many, given that it was made after Adobe MAX (October). It is too late to change this, and Adobe has even apologised for its poor communication. So, we must now forget about it and think about the future of Flex.

Apache Software Foundation

Although the presentation was not particularly exciting, it was interesting to see how the Apache SF and the projects it hosts actually work. The presentation was provided by a member of the board of the ASF, Roy T. Fielding , who is one of the authors of the specification HTTP / REST, no less.

The ASF is a non-profit association which hosts projects licensed under the Apache licence. The most famous of these projects is the Apache HTTP Server, one of the most popular softwares in the business. There are many others, with 97 other projects, including Apache Maven, Ant, Tomcat, OpenOffice, Lucene, Subversion, … I’m just listing the « official » projects because Apache projects have 2 states: incubation and accepted.

For Flex, it will of course begin with the incubation period. For this to happen, Adobe will send a proposal (a document that we saw earlier in the week) to the Apache mailing list which will be considered by the board. Apache will acknowlege this proposal within 72 hours and decide whether the project is accepted into the incubation process or not. This step should not be a problem, Adobe is one of the largest contributors to the Apache Foundation and recently had PhoneGap accepted by the Apache Foundation.

During this incubation period, the organisation of the project must be proven and shown to be ready. If all goes well, the project can come out of the incubator and become a « real » Apache project. This may take several weeks to one year.

The roles within the ASF – Committers & contributors

The ASF is organised quite differently to how you may expect. The organisation of the board is almost exclusively done through the mailing list, no meetings. Within the projects themselves, it is the same, there is no hierarchy as such, no president, no manager, etc.. You can find more information on the operation of the Apache Software Foundation on this page:

Apache Software Foundation – How it Works

Everything is done on the basis of « meritocracy ». Put simply, the more you do for the project, the higher your rank is.

If you are involved in the project, you have the role of « contributor ». This means that you are active on the mailing list, you have submitted patches or written documentation, for instance.

Then you have special contributors called « committers ». These people have  write access to the versioning system of projects (SVN).

Then we can find members of the « PMC » which are « contributors » or « commiters » entitled to vote for decisions taken by the community.

Open governance

The voting system is very important in the projects of the ASF, and work in a very simple manner. Each voter can give a +1, 0 (neutral) or a -1. The decision is then made based on the score of the vote, and the negative votes must be justified.

An important point to note is that the projects of the ASF are composed of individuals, not groups or businesses. Some members of the Apache Flex project will be Adobe employees, but they will not have more importance than the others, everything will be based on the votes of individuals.

Here Adobe loses control of the governance of Flex, and therefore the direction the project takes. The community members of the ASF will decide. And this changes many things, including the fact that strategic decisions from Adobe will no longer influence the project.

Great, then what is the roadmap?

One issue that was raised at the Summit was to know what the roadmap for the next Apache Flex would be. And in fact, there is no roadmap, but it’s not a problem. This is the « design » for any Apache project.

In an Apache project, there is no manager who will dictate where the project is moving, everything depends on individuals. The evolution of the Apache project Flex is in fact directly dependent on the contributions made by its members. Basically, if a « contributor » wants to do something in the project, he will submit a patch and start a thread on the mailing list. If the contribution seems interesting, it will be included in the source code of the project.

Nobody is going to tell a member of the project to work on a specific feature. The feature itself may be discussed on the mailing list but governance is open, so there is no instruction.

There is no public roadmap itself. This may seem strange at first, but that is how the ASF works. In the end, I think it’s a very good system.

Keep in mind though that when Adobe was deciding the future of Flex, you very rarely had roadmaps or release dates (> 1 week prior to the release), so it’s for the best ;) .

Initial Committers

There is a status which is a little more special in Apache, which is « Initial Committer ». These are committers who are listed in the project proposal to the ASF, before the incubation period.

If you follow me on Twitter, you probably saw that there was a call for Initial Committers before Friday (so it’s too late if you see it now):

http://blogs.adobe.com/flex/2011/12/call-for-committers.html

Around 24 individuals will be selected (UPDATE : Initial committers selection was made yesterday), who will be the first project committers. This gives strength to the proposal in its submission to the ASF.

If you want to participate and you see that it is « too late », don’t panic. You can always become a contributor or committer during the incubation period of the project.

Note that among the Initial Committers, you already have Alex Harui, who wrote a *lot* of code on the existing Flex SDK,  members of Spoon, and several others.

The role of Spoon

The role of the Spoon foundation is different from the one it had originally before Adobe decided to give Flex to Apache. As I explained above, the ASF is made up of individuals and not groups. There is no « Spoon » in the Apache project, only members of Spoon.

But there are many things that were managed by Adobe in the past, which should continue, even if they have no direct link with the source code of the project. For example, conferences, sponsorship, User Groups, … Spoon is likely to be a leader for this project, and will also take care of everything revolving around the life of the project.

During these two days, I met Michael Labriola and Jonathan Campos , two of the founders of Spoon. I can assure you that they are very good leaders for the project, and with their help, innovation in Flex will be taken one step further. Spoon also includes really passionate and very talented people like Joel Hooks .

Flex is in good hands!

Flash Catalyst discontinued

During these two days, Adobe also clarified its vision on the future of the tools it produces. So they announced the discontinuation of the development of Flash Catalyst, the software that was meant to be the mediator between « designers » software  (PS, Illustrator, …) and coders (Flash Builder).

Flash Catalyst is a good tool in itself, but never really found its audience. So of course, there were, and always will be people who use it, to a greater or lesser extent, but it remains fairly anecdotal.

Always keep in mind that Adobe is a company which seeks to make a profit, which is normal. The calculation is simple, it’s all about return on investment. If the calculation is not sufficiently positive, the future of the project will remain unsure.

CS5.5 version of Catalyst is the latest version of Flash Catalyst. It is compatible with Flex 4.5, but compatibility will not be ensured for future versions.

Changes to Flash Builder

The following features will be removed from future versions of Flex Builder:

  • Design View, which allows the construction of interfaces by Drag & Drop
  • Data Centric Development (DCD)
  • Workflow with Flash Catalyst

Again, everything is a matter of ROI. Although the Design View looks nice for a beginner, it takes a lot of investment to make it work correctly while most experienced developers do not use it.

Honestly, Flash Builder seems to be a less and less attractive alternative for Flex development (not only for the Design View which I did not use). It seems that an IDE such as IntelliJ is much more powerful and functional.

What will be provided by Adobe before it leaves Flex

Adobe will give some pieces of what the Flex SDK engineers had worked on the last months to the community. During these two days, we saw some components that had not been « Sparkised », such as the Accordion, the ViewStack, or Tooltip DateChooser. The demonstrations were functional, much work has already been done.

Beyond this, Adobe has ensured that the runtimes will be maintained and will evolve for at least 3-5 years (ensured). They also committed to providing a « whitepaper » in January on the roadmap ofFlash Player (still controlled by Adobe), especially on the concurrency and Windows 8 . Note that during the consultation on the future of Flex (FR) , the « top feature » voted for was some changes to be made in the ActionScript language (generics, enums, …). This was not discussed during the conference but a little bird told me that the whitepaper should provide « good surprises ». Bit of teasing there :) .

Again, the future of Flash Player is based on the ROI it can provide Adobe. Adobe intends to focus on Flash Player for video and video games. Some improvements needed to support video games on Flash Player will surely be beneficial to Flex development.

Adobe will also provide a testing framework, codename » Mustella « (after Molehill, another animal reference, misspelled this time ). Mustella tests are written in MXML (and not with Flex Unit) which check if the framework is still working properly, thanks to bitmap-to-bitmap comparisons. Test coverage is very important, and this is very important for the future of Flex, to ensure that nothing is »broken » after a patch.

Adobe will also provide ongoing work on the new compiler called Falcon

The Falcon compiler

At MAX, Adobe gave a sneak peek of Falcon compiler, which should provide a 5-10x boost to the Flex project compilation, by taking advantage of multi-threading and some other technical enhancements. What has been announced during the Summit, however, was quite disappointing for all the attendees. Adobe announced that a part of the compiler (only pure AS compilation, not MXML) would only be ready by mid-2012 . Big disappointment for those who like me thought that a majority of the work had already been done.

So there was some grumbling amongst attendees, especially because Adobe announced that Falcon would be shared with the community only after its completion. Following the reaction of the attendees, Adobe announced on the second day of the Summit they would share the work on Falcon as soon as possible so that the community can begin work on it.

Adobe and tooling HTML5

Adobe is therefore now focusing its efforts on creating tools for HTML5. However, Adobe has confirmed that it is not preparing HTML5 tools dedicated to enterprise development , as it had done, with a complete framework, Flex. So expect to see flourishing versions of Dreamweaver, Fireworks, Muse and Edge on steroids in the near future.

FalconJS

During the second day we has the chance to see a demonstration of FalconJS, an experimental project to compile Flex to HTML5 .

Even though I was not really convinced by this famous FalconJS, the demonstration was quite impressive. On ultra-simple projects  (a mobile list with an IconItemRenderer for example), the rendering was pretty good, even quite fluid. But this type of compiler seems too painful to develop , mainly because of the obvious differences between the two technologies.

Perhaps the approach was wrong. The conclusion of this experiment is that it is possible but extremely difficult and that Adobe will not continue devoting its resources to pushing it forward.

Adobe is currently deciding whether they will also give the results of the FalconJS experimentation to the community, as most attendees found it would be beneficial to have it in Apache hands. An answer should be given in the coming weeks.

Monocle

If you don’t know Monocle, it is a tool that Adobe has been working on for quite some time now. It allows you to gather large ammounts of information in real time about your Flash / Flex application.

There is no release date yet for Monocle but Adobe are continuing to working on it. Guess why? Because this is a very important area for game development, allowing you to find out why you are losing some fps and how to resolve these situations. Monocle could also be used with Flex projects, as it is a very generic tool.

Monocle will probably ship as a commercial product, surely in the same way they want to distribute Alchemy 2.

AIR on Linux

During the Summit, someone asked if the community would also get the « Linux porting Kit » which could enable developers to create the next versions of AIR for Linux (discontinued a few months ago by Adobe). The answer was no, because the « porting kit » is actually the Flash Player source code, which is not open sourced.

Conclusion

These two days have been *very* interesting, both for the presentations and for the discussions I had with other members of the Flex community. Times are changing and you must understand what this change means for you, who uses the product or who wants to participate in the future of Flex. This move to the Apache Software Foundation should be considered as a challenge, which could allow Flex to raise even higher.

Those already in the Apache incubation project are very talented and this could give us an even more powerful framework.

Flex still has a bright future for companies who want to build fast and robust applications . Not to mention the people who will have a hard time building complex applications on HTML5, for whom Flex will always be a viable and mature alternative. Personally, it also gives me great business idea to dig into :) .

Links

Here are a few links that you should find interesting:

http://www.apache.org/foundation/how-it-works.html

http://blogs.adobe.com/flashplatform/

http://blogs.adobe.com/flex/

http://www.adamflater.net/2011/12/14/apache-flex-beginning/

http://www.peterelst.com/blog/2011/12/13/flex-summit-updates-on-the-open-source-strategy-and-runtimes/

http://flexpletives.blogspot.com/2011/12/flex-spoon-flash-some-air-and-stick.html

http://yakovfain.com/2011/12/15/the-future-of-the-flex-framework-in-enterprise-it/

http://www.spoon.as/