Given the number of frameworks now available for rich Internet application (RIA), choosing the right one, if not the best one, can be a difficult decision. Inside RIA recently completed an online survey that asked Flex/ActionScript RIA developers about their preferred frameworks.
The survey listed four major frameworks: Mate, PureMVC, Cairngorm and Swiz. The results speak for themselves. InsideRIA’s Rich Tretola says: “Well it appears that I was little off in my predictions. By getting over 30 percent of the vote, PureMVC has led the way, with Cairngorm taking second place, and Mate coming in third.”
In discussions surrounding the voting, one developer, Karl, shared why he does not use Cairngorm:
I found Cairngorm to be overly complex and, in a lot of ways, a square wheel. For example, why do I need to raise an event that gets handled by a front controller and routed to a command? Why not just invoke the command directly? The front controller pattern is trying to claim that keeping all of my commands in one place is agile. Actually, by removing the command's invocation from its natural context, I found myself spending a huge amount of time trying to remember where the source code related to the event was. After I finally found the correct code, I was trying to remember what I wanted to do with it. Overkill.
Others recommended frameworks that were not on the survey list. For example, one developer, Vipin, said:
We use Tom Bray's EasyMVC, which is very simple, but uses most of the concepts used by Cairngorm. There are lots of interesting features in the available frameworks, and we kind of mixed everything together and made an in-house framework, which is working nicely: faster development and multiple developers on the same project, and no confusion on how to deal with events and commands etc.
Chris Brind’s very thoughtful comments and suggestions really completed the survey:
The main advantage that a framework offers is a prescribed way of implementing an approach, be it MVC or ViewHelper, or whatever.
I would recommend that any team about to embark on a project take a close look at what frameworks are available and weigh up whether the benefits they will get from using an existing one will out-weigh writing their own or simply putting in place a convention and code-review process.
IMHO if you have quality, disciplined developers, a good convention is what is really required. But a lot of people don't like to work to conventions, and I imagine some of the more anal architects don't trust their developers enough to follow one, which is a sad case to start with.