I’m Cairngorm!



First, let me ask Java developers a question. Imagine that one day you wake up and read the following announcement, “As of today, Spring framework is the foundation for delivering of successful J2EE projects. In contrast to earlier versions, many parts apply across frameworks. So, if you are using Struts, JSF, and especially Tapestry, just forget about all these complex to pronounce names. From now on, no matter what framework you use, you are actually using Spring’.

Some of you would think, “Yakov is either out of his mind or is writing this blog sitting in one of the coffeshops in Amsterdam”. Wrong! I’m just reading an announcement about the upcoming release of the popular Adobe framework Cairngorm 3: http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm+3

Based on this announcement, even if you are using PureMVC, Swiz, Mate, or whatever else will be invented in the future, you are using Caingorm. Basically, instead of addressing issues of the Cairngorm 2 framework, someone decided to reuse a well recognized brand in rather small Flex community (about 250K developers) and turn it into a set of guidelines.

The Getting Started document reads, “The original Cairngorm library remains a part of Cairngorm 3, but has not been updated for this release.” Two paragraphs down it states, “To migrate from Cairngorm 2 to 3, you should first read the Cairngorm Guidelines to understand how your existing client-side architecture might be improved. This could involve introducing an inversion-of-control container or simply refining the way you use the original Cairngorm library.”

Now I’m confused. If Cairngorm 2 was a framework and Cairngorm 3 is not, what this improvement from 2 to 3 means? Introduction of IoC simply means throwing away Cairngorm 2 in favor of Parsley, Swiz or Mate. Am I missing something?
Cairngorm 3 includes the following libraries: Observer, Popup, Task, Validation, Integration, Module, Navigation.  Several of them “are implemented as extensions of Parsley Application Framework. In order to take advantage of these libraries, you also need to use Parsley”. Wait a minute. Do I need to use both Cairngorm and Parsely on top of Flex framework? If before, you should’ve added to the project one swc of the selected framework, now you’ll need to add a bunch of them. Are we going to build a pyramid of frameworks or something?
Cairngorm tools include Flex Builder (I assume Flash Builder too), Cairngorm 2, FlexCover, FlexPMD, Flex-Mojo for Maven… What if they decide to use our open source ANT script generator Fx2Ant and include it in Cairngorm too? Is this a good thing?

Yesterday, I’ve attended an interesting presentation about disruptive thinking, where presenter kept asking, “What if you could fly?” Applying the same technique, I’m asking myself,  “What if I’m Cairngorm?”

Tried it several times. It doesn’t work so far. Sure, I’ve gained some weight, but it’s too soon to call myself a mountain. But I’ll be there! I can do it! We need a change! For now, I’ll just use this word as my middle name:

Yakov Cairngorm Fain.

Sounds good, isn’t it?

3 thoughts on “I’m Cairngorm!



  1. Yakov,
    I was completely stunned when I read that Cairngorm 3 advanced features required the Parsely framework. Have you seen the Parsley framework. Talk about a learning curve. Good lord.

    When Swiz is rapidly becoming the defacto standard for Flex IOC solutions and future releases of Cairngorm should consider integration of SWIZ and Cairngorm/Cairngorm Extensions as a migration to Cairngorm 3… instead Parsley is now required. Who the hell has heard of Parsely. And the Parsley docs and code have a HUGE learning curve. Oh yeah… I can convince flex newbies to learn Parsley and Cairngorm. Right… what a brain fart!

    The Adobe Consulting team did a truly abysmal job of including the Cairngorm community experts in the “next generation” process. Instead – behind closed doors – they collaborated without most of the experts (that I know of) and presented a decision to use Parsley and propose best practices based on their experience ONLY. This was a proverbial “flip the middle finger” to all of us in the field.
    I consider this a poor attempt by the Adobe Consulting Group to promote their own solutions without regard to the community.

    I am completely disgusted. The politics suck. I am now considering using SWIZ as my MVC/IOC framework of choice. And that is extreme for me when my peers know that I have been a Cairngorm evangelist since Cairngorm .99.

  2. Thomas,

    You jump right into technical details of what specific framework has been included into a foggy notion “Cairngorm 3″. If what was known as Cairngorm framework is/was a worthwhile product, why not investing some money and releasing a new version of it? When was the last new release of the Cairngorm 2?

    If, for any reason, Adobe Consulting decided to discontinue it, why not explaining people the reasons so they don’t repeat mistakes? They don’t have guts to admit that using Cairngorm 2 adds very little value to any project and actually makes development of the enterprise projects more expensive.

    As to selection of Parsely as opposed to Swiz or Mate… Be positive! At least they didn’t select PureMVC, which would be a lot more damaging and costly!

  3. Hold your horses Gents,

    You have a choice!

    I am with disagreement with the comments written in this blog for the following reasons:
    1- Cairngorm 2 is here to stay. But there will be no further support for it. Version 2.2 will be the last release version.
    2- Cairngorm 3 is where Adobe will put their focus on instead. Creating a library of Utils that help you resolve many patterns that are redundant from one Flex project to next by introducing best practice methods.
    3- Cairngorm 3 does not impose on anyone to use Parsley by force. Instead it compliments your open sourceMVC architecture of choice -i.e. Cairngorm 2, Parsley, Sprint ActionScript, Swiz, PureMVC.

    I invite you to visit the link below to better get informed:
    http://opensource.adobe.com/wiki/display/cairngorm/CairngormTools

Comments are closed.