The topic of Flex frameworks is getting hot

Yesterday, I’ve presented on comparing several Flex frameworks at New York Flex Users Group. More than 50 people showed up, which proves that this was an important topic. By the end of the presentation the temperature in the room has increased because an innocent preso turned into a heated discussion.

Without going into details and naming names, I’d like to make some points, and share with your some observations.
Before starting the presentation, I asked the following questions:

1. How many people know Java. About 60% raised their hands. I was expecting around 80% since Flex works nicely with J2EE.
2. How many people know design patterns? Only 40% raised their hands this time. This is somewhat troublesome and explains why people have problems understanding Flex frameworks.

Last Monday, I’ve been teaching a one day hands-on class on Cairngorm. Without discussing pros and cons of Cairngorm, I believe it’s an easy framework to learn assuming that you understand several design patterns. After about 5 hours (including hands-on exercises) students had a pretty good understanding how to use this framework.
But I remember the sentence from of one of the recent blogs – it was something like “Is this just me being stupid or you also can not get Cairngorm?” It’s not about being stupid, it’s about understanding design patterns.
We need to distinguish between architectural frameworks and component libraries.

Architectural frameworks don’t give you additional functionality like better components or code generators, but rather allow you to re-arrange (refactor, organize) the code of your applications into separate tiers. Why you may want to consider one of such frameworks? We live in the world when a group of a dozen developers that works on the same project has different skill sets (read my lips: most of them are junior) and project managers try to lower the risk of project failure by limiting the responsibilities of each developer. Mary, you are responsible for developing just the UI for these ten views. Srinivas, you are responsible for programming business logic in ActionScript. Manoj, your task is to provide and test remote services supplied by the Java-based content management system and some Web services. Project managers sleep better knowing that if Manoj would leave the project, he can easily find another developer who will pick up his piece.

If this sounds familiar, pick an architectural framework that is not too intrusive, which means it doesn’t require developers writing too much of a boilerplate code just to support the life cycle of the framework itself. The other consideration is how it supports modularization. In no time you’ll find yourself in a situation when the size of your SWF gets out of hands and the users need to wait for more than a minute just to see the first screen of your beautiful RIA. And finally, what’s the learning curve of this framework for YOUR developers based of their current skills.

The other approach to project development is to use just the Flex framework in conjunction with various component libraries that increase productivity of developers by offering additional functionality to existing Flex component, deploying various code generators and wizards. If you have at least one senior Flex developer in your team, this is a pretty safe way to run the project.

At the end of yesterday’s discussion several people expressed an interest to have one of the next meetings as a panel with several people that represent different points of view about the usefulness of various frameworks. It should be an interesting shootout.

I’ll repeat this presentation at NJ Flex users group on Aug 20, in NYC on Aug 19 as a part of the Enterprise Flex Symposium, and in Philly’s Flex users group on Sep 11. Come on over and let’s fight :)

This presentation will serve as a basis for the chapter of an upcoming OReilly book “Enterprise Development with Flex”.

If you’d like to host this topic in your Flex UG, write me an email off like. I travel a lot and we may be able to arrange this presentation.

Yakov Fain