Flex Pasta » 2009 » July

The Flex development landscape has many frameworks for creating scalable, enterprise RIA applications.  The two major players, in my opinion, are Cairngorm and Mate.  Both frameworks offer a solid approach to an enterprise RIA.  Having used both Cairngorm and Mate in enterprise Java applications, Mate is the better option for small and large projects(in my opinion).  Cairngorm uses a singleton pattern that makes it hard to use modules and requires significant more overhead in compile times, SWF size, and speed of development.  Mate on the other hand uses an injection approach which is easy and fast to create, maintain, and debug applications.  I am not saying you are going wrong by using Cairngorm, but my first choice is Mate.

Cairngorm development dead; Mate booming

Cairngorm was purchased by Adobe and eventually open sourced.  Since being opened source in an SVN repository in July 2008, Cairngorm has had a total of 0 new releases, 15 total commits and no commits since November 2008.  The last code release of cairngorm has not been since Flex 2.  Mate on the other hand is also open source.  Mate had 17 new releases in the last year alone with hundreds of commits to its repository.  No other Flex framework out there that I have seen has this amount of activity.

Mate and the Bus Factor

There are a few downsides to Mate that don’t having anything to do with the code.  The bus factor.  Mate is run by a few people at asfusion.  They do a great job at updating the forums, providing documentation, and doing presentations at various Flex events across the country.  However, if they decide to change careers or just get overwhelmed maintaining Mate, there may be no one there to step in to keep the framework going.  I would like to see Mate gain wider support with its code base, with more people committing code and making decisions for the framework’s direction.

A 1.0 release of Mate is also desirable.  The code is quite stable, but a 1.0 release would give a safer feeling to enterprise projects using it.

Support Both or Support None

Adobe bought Cairngorm several years ago.  This was a good idea to help with the development of Flex RIAs.  Now the Flex SDK and Cairngorm are open source.  This completely changes the game.  It appears no one is working on Cairngorm or looking for enhancements for things like modules.  There also appears to be no community involvement for this project.  At what point does Adobe change its direction for a framework?  Will Cairngorm still be the Adobe framework of choice 5 years from now?  Flex 4 is the time to make the change.  One option is to offer both Cairngorm and Mate as preferred frameworks for Flex.  But then the question is, who maintains these frameworks?  A second option would to be supporting no one framework.  This way the community can drive the direction of RIA development by using the best available framework.  It has worked over the years with Struts, Spring, Hibernate, Apache, etc.

By supporting just one framework, the door for innovation of frameworks is closed.  The Flex SDK continuosly improves and excites the community.  Allowing the community to improve the frameworks would be a great step foward.