Now that I can officially talk about Cairngorm 3, I thought I’d put some of my thoughts down (more for my future reference, but feel free to follow along).
Alex Uhlmann officially announced the release of Cairngorm 3 beta on October 5th, and from my limited access to the documentation and code, I have a few opinions.
I think that it is a positive thing that Adobe Consulting decided to take their hat out of the ring of application architecture providers. The next release of Cairngorm is a complete paradigm shift for the project, in that it is – to simplify it a bit – a set of best practices and support libraries that developers can use within an application architecture such as Mate, Swiz or Parsley.
After I learned this fact, I was surprised that they kept the same project name, but it is a strong brand which will retain the current developer base and level of interest.
I also think that it lays the groundwork for a more free-market environment for other application architectures available today, or soon to be available. I know that a large consideration we made at my company was that since Cairngorm was produced by Adobe Consulting, that it would always be a strong contender, and most likely the proverbial 400-pound gorilla. Now that there is not an “official” application architecture supported by Adobe, then the weight of the brand is removed from the decision making. Now becomes about who has the architecture that is best implemented, best documented, easiest to integrate, etc.
Looking at it strictly from a consulting business perspective, this approach to application development support is much more sustainable and has higher revenue-generating potential. If a shop chose to implement the Cairngorm 2 architecture, they may require assistance initially to get up to speed but eventually they become highly proficient and that well dries up.
In addition, it limits their business to people who implement Cairngorm 2.
Now that Cairngorm 3 can enhance and extend any architecture available – since it is about applying best practices – their consulting possibilities are now limitless. It doesn’t matter if you choose to use Mate, or PureMVC, because the Cairngorm 3 libraries can enhance them to support enterprise Flex development.
It’s a win-win situation. They get more business and more expertise, which in turn generates more ideas for Cairngorm, and makes their package more useful as time goes on.
However, I now wish I could turn back the clock 1 year and change the decision we made to implement Cairngorm 2 architecture. After doing internal testing of the major packages available, Cairngorm was not our main choice from a technical perspective, but was the top contender from the business perspective, and so we bit the bullet and adapted.
At the time, Mate was my choice for our application development efforts, and now we may have the discussion again internally about moving over. I know it won’t happen, for we’ve invested far too much time and effort into adopting Cairngorm, but I at least want to have the conversation.
Lastly, I will say I am excited about this new direction that Adobe has taken, and we’ve already begun to play around with some of the code in-house. I’ll post reviews once I’ve had a chance to digest most of it.
4 Responses for "Cairngorm 3: The cat is out of the bag"
Well “you can use any framework with it” is for now a bit wishful thinking as much depends on Parsley (which is btw a very nice framework).
Then using another IoC container like SringActionscript or Swiz makes stuff not cearer. In the end using multiple frameworks beside eachother is often confusing. I hope they will remove this dependency in the near future. But i really like the idea of loosely coupled ideas of Cairngorm 3!
Arnoud
Sometimes I think frameworks are just a fad that allow companies to discriminate developers based on some piece of code that sort of shows your “advanced” level. Maybe it works for large projects but it is always a pain to update and extend the app, especially when people who worked with particular framework decide to move on and leave the company or simply get fired being replaced by cheaper resources (“nothing personal it’s just business decision” tell us business people that sit on their so called “business” meetings all days long…).
Peter, it seems as if you’ve had a/some negative experience with companies that have tried to implement a development framework. I’ll state that using a code architecture or a development framework is not a fad, nor trendy, but simply efforts to do what most industries try to do – standardize.
They are not used to discriminate, but rather to homogenize the work being done on business applications within a company. It reduces risks, increases productivity, creates a better community amongst the developers, and speeds up programming over time.
Granted, there are some bonehead managers and executives out there with their head in the sand, and may do things incorrectly. However, that is not the fault of the hard working folks who develop these frameworks and architectures.
If you can see what the advantages are, instead of focusing on their improper implementation, you’ll realize that frameworks and architectures are a positive things for the community as a whole, and for those who wish to advance their skills and careers.
I agree with Steve.
It is very difficult to maintain internal standards when you are dealing with a team of 5 or more developers, many of which are coming and going (contract, consultation, etc.) If you maintain your own set of standards and best practices there is the initial burden of waiting until the new developers catch on and truly understand how things are done *your* way. And sometimes that day never actually comes if you hire the wrong person and then you have to start all over again. Also, if you do not have well written and up-to-date documentation it takes even longer.
In my opinion, the beautiful thing (“pro”) about these frameworks is that the documentation exists all over the inter-webs and there is the added bonus of global community support that happens naturally because many of us thrive on helping each other out. The bigger the community is and the more a product is recognized, the better the product will be and the easier it is to learn and understand the core concepts of how it is implemented, etc.
My $0.02 worth.
Leave a reply