Flex Pasta » Mate Framework: Should it be the new standard in Flex 4?
Mate Framework: Should it be the new standard in Flex 4?
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.
11 Comments
1. Theo replies at 17th July 2009, 2:00 am :
Adobe’s endorsement of Cairngorm has done nothing good for the Flex community. It’s set the bar at the lowest possible level. Endorsing another framework, even one as good as Mate (and I’m one of it’s biggest supporters), would be a similar mistake.
I agree with your concluding remarks, to tie the component framework to the application framework will only stifle innovation and slow the progress.
2. Scott Mebberson replies at 17th July 2009, 2:07 am :
I’m not sure ’supporting both’ is an option. I mean, there are plenty of other popular AS3 frameworks out there besides Cairngorm and Mate. What would happen to those other frameworks beyond Cairngorm and Mate, seems like it would just exaggerate the issue that we currently have with just Cairngorm being supported. I think I’m in favour of supporting none.
I know the lack of Cairngorm updates has spurred people on to look for other frameworks, with features that they’re wanting in Cairngorm but can’t have. Like myself, I’ve moved away from Cairngorm choosing Mate now.
There has been some really good updates to Cairngorm however, via the Universal Mind Cairngorm Extensions. Too bad they haven’t been integrated into the Opensource repo with a new release.
3. Jethro replies at 17th July 2009, 3:12 am :
There are some inaccuracies here:
1. Adobe did not _purchase_ Cairngorm. Macromedia actually acquired the company (iteration:two) who first wrote it. I doubt very much that Cairngorm was the reason for the purchase of the company!
2. Cairngorm development is certainly not dead. The fact there have been no changes is not always because development has ceased. Merely it isnt broken and needs no additions or changes. This is actually a very comforting thing as it means its stable.
3. Adobe do not “support” just one framework. In fact if you purchase Flex Builder, I would be very surprised if you find one mention of “Cairngorm” in all the documentation that comes with it!
4. I find it very interesting you feel the two major players in the MVC “framework” space are Mate and Cairngorm. I would say its Cairngorm and PureMVC. Mate is a late-comer and I have yet to hear of one company/person who has used it on what I would call a large scale project. Both Cairngorm and PureMVC however I could find several. They are both tried and tested.
4. saumya replies at 17th July 2009, 4:26 am :
For me,”MATE” and “Swiz” are the frameworks. I have used MATE and I am sure a lot of good projects are on top of MATE. Since “Cairngorm” is from Adobe and the immediate alternative people see is PureMVC,the good frameworks are over shadowed.
I agree with Brian Telintelo as of “Mate and the Bus Factor”.Again I want to see MATE to work without the “-service” option in the compiler.If it can do that by external XML file, then one more good frame work, “Parsley”, can be avoided for Flex Applications.
5. Cairngorm v. Mate: why ca&hellip replies at 17th July 2009, 10:07 am :
[…] Flex Pasta there was an interesting post ( Mate Framework: Should it be the new standard in Flex 4?) about Mate and how it should overtake Cairngorm as the framework of choice for Flex developers.
6. Brian replies at 17th July 2009, 11:08 am :
@Jethro Sorry, to clarify, Cairngorm use is not dead. I was referring to the Cairngorm code base being dead. Part of that is because it is so stable. But there are still enhancements and bug fixes(see the bug database) that I don’t think anyone is looking at.
We have used Mate and Cairngorm on large projects any have had no bug issues with either.
7. Niklas Alvaeus replies at 18th July 2009, 4:57 am :
Well, there’s the Universal Mind extensions to Cairngorm which I found very useful, so it’s not true there’s been no community support or advancement of Cairngorm. http://code.google.com/p/flexcairngorm/
8. Jethro replies at 19th July 2009, 2:33 pm :
@Brian
> But there are still enhancements and bug fixes(see the bug database) that I don’t think anyone is looking at.
Erm, from the 8 (yes only
current ‘Framework’ issues in the bug database, onlu one is of any real relevance and that only exists in the trunk anyway, not in latest stable release which is what 99% of people will be using!
And indeed, as Niklas pointed out, there has been community advancement/additions to Cairngorm from the UM extensions.
Cairngorm is a long way from ‘dead’, in fact, I reckon its the most popular ‘framework’ in use in Flex projects by a long way.
Just because Mate has x many commits or releases does not point to how ‘alive’ it is or how many people are using it.
9. Micko replies at 22nd July 2009, 8:46 am :
Brian, there is also the Cairngorm plugin that has been developed for Eclipse/flex 3 and docs and forum to support it so it definately isnt dead.
http://opensource.adobe.com/wiki/display/cairngorm/Plugin
Its a design pattern framework and there to keep complicated apps as simple as possible. The nature of these frameworks is that they should be stable and should not get over complicated with new releases and enhancements. If they need them then they were absent in the first place perhaps and this could tell on the usefullness of the design in the first place. Sure as the environment changes then we need new patterns and I see your good point about the singleton data model not being compatible with modules. Good post but more of a subjective feeling than a reflection of what is actually being used in commercial and enterprise flex apps. WIll definatelt be checking Mate out now though.
10. Bruno Selva replies at 11th August 2009, 11:41 am :
Some time ago, I did a study about MVC frameworks for flex. The Champion is Swiz. We use on many applications and the first point of Swiz have simple form to separate the layers. the IoC system is the best on Flex. Spend some time and take a look on Swiz. You will like !
Thanks
11. Chris replies at 18th November 2009, 5:26 am :
So what about your Penne framework? I see your last post is over a year old…
Leave a comment