Cairngorm Moved to Adobe Open Source

Adobe Consulting is pleased to announce that the Cairngorm Micro-architecture has moved onto Adobe Open Source.
Its hard to believe that Cairngorm is approaching 4 years old – Steven and I announced it at the Max conference in New Orleans in October 2004 and the first version was released soon thereafter.
We’ve gone through a number of different versions since then, but each one has always held true our vision: Provide a lightweight MVC architectural framework around which to build Rich Internet Applications with Adobe Flex or Adobe AIR.
The latest version, Cairngorm 2.2.1, was released back in October 2007 and, although we at Adobe Consulting consider that being a good reflection as to the maturity of the framework, there have been some questions on when the next release would be made available and what new features it would have, alongside some specific feature requests.
At Adobe Consulting, we’ve always had a minimalist approach to Cairngorm; we don’t want to add feature for feature sake, add functionality that doesn’t belong within an architectural framework, or introduce another design pattern into the mix because it’s the latest fad in the software industry. The framework is there to allow us to build well-architected software solutions, and we’ve only ever added features we truly believe helps us do that.
There are no new features in this release – at this time we are simply moving Cairngorm 2.2.1 from Adobe Labs to Adobe Open Source.
However, we do listen to the community and to our customers, and this announcement is in response to this invaluable feedback. We hope that this launch will emphasize the commitment that Adobe has to the framework, and reinforce the message that the framework is the one that Adobe Consulting visibly advocates.
There are many benefits to having Cairngorm on Adobe Open Source. Alongside having a well defined home for downloading the framework, its documentation and samples, Adobe Open Source also provides additional resources one would expect of an open source project:
* Source available via a Source Control System (Subversion)
* Availability of a bugbase for bugs and enhancement requests (JIRA)
* Developer forums for the discussion of features and roadmap
* Ability to submit code patches
Alongside this move, we are also introducing a level of governance, a charter that explains how the Cairngorm project will be managed, and how leaders in the Flex community can get involved in the project.
We are also extending an open invitation to the community to submit bugs or feature requests and take part in the Cairngorm discussion forums.
The community has read-only access to the Cairngorm source code by default, and contributors will also be able to submit code patches.
We are incredibly excited about this move, and look forward to the community getting involved in the framework, through the submission of enhancement requests, sample applications, code patches, documentation and taking part in the discussions on the future direction of Cairngorm.
The Cairngorm home page on Adobe Open Source can be found here.

7 Responses to Cairngorm Moved to Adobe Open Source

  1. I understand that you want to be very conservative with your framework, and you listed good reasons for deciding to not add any new features.
    But what is your response to a Flex team leader who is looking into other frameworks to replace Cairngorm, simply because the features of other frameworks appear to be more capable of solving the needs of the application developers?
    Although the Cairngorm files have been dragged and dropped into something called “Adobe Open Source”, the software apparently hasn’t grown. If software doesn’t grow, it dies.
    What is the strategy for competing with frameworks that are growing? How do you compete against feature-rich frameworks that give the application programmer more options for structuring an real enterprise application? What are we supposed to do when building an application that doesn’t exactly follow the paradigm of CairngormStoreWeb?

  2. greg h says:

    Wow! Great news!!!!
    Thank you Adobe! Thank you Adobe consulting!!!
    (btw, small note, the following redirect should be updated to redirect to Cairngorm’s new home: )
    Thanks again!

  3. Hi,
    Thanks for the comments – the request to point the /go/cairngorm link to Adobe Open Source is in and should happen soon.

  4. Hi Harry,
    Thanks for your comments.
    We made a conscious decision not to add any new features to the release at the same time as the move to Adobe Open Source, so as not to complicate things. From this point on, we want the community to be involved in discussions on feature roadmap.
    In answer to your other points, my colleague, Steven Webster, has given some more future-gazing thoughts on the move. You can read his post here:
    If technical leads are identifying features they think should be part of the framework, we invite them to start discussions on the Open Source Forums. We won’t take part in any of “my framework is better than your framework” discussions that have appeared recently, but we will be giving more communication in the weeks and months ahead on how we use the Cairngorm framework. If you look at much of the criticisms of any of the Flex frameworks, it’s actually down to the way it’s being used, as apposed to the framework itself – eg, blaming ModelLocator (which is just a marker interface) for lack of good OOP in an application. I think the real issue here isn’t in the framework itself, but the examples of its use.
    And, on that, you make a good point with CairngormStore – looking at the application now, it definitely does not advertise our best practices of building applications with Cairngorm, and that’s something else we want to rectify, hopefully with help from the flex community – we want to see other sample applications out there too.
    So, get involved. Let us know what you think is missing, or share your own best practices.

  5. That’s great news!
    see u all over there.
    tinylion development uk

  6. Hi Alistair. Thanks for your response. I’m with you. I think you are completely right about how the majority of the critics simply don’t know the right way to use Cairngorm.
    It seems like most people are trying to “weld” their code to the framework instead of “hook” it to the framework, and then they complain their code isn’t portable.
    I think it would be super helpful if we the community were to post examples of the right way to “hook” your code on, and dispel the misleading examples where most of the logic cannot be reused because of the tight couplings.
    And what are the best practices when I have over 200 user gestures in my application? What about if I have a self-contained section within my application? Should I try nesting a complete framework within a single Cairngorm “view”? And how do I best create 2 projects that share mostly the same Cairngorm code? What parts of my Cairngorm implementation should I try to reuse? And how do I deal with cross-cutters, such as controls that need to look at the data and notify other commands to respond? (For example if many different commands can change my model.currentNavId, and I want ChatManager to always be aware of the change no matter which command is involved. Plus, it’s not practical to repeatedly add every cross-cutter to every command because then there’s a lot of code duplication in every command.)
    Those are the kind of questions that I have. So far, even the most advanced documentation I’ve found won’t touch those scenarios. It would be nice to have one central place on the Internet where I know I can go to answer these questions.

  7. I agree with the above points that the sample implementations of the framework are indeed what generate the largest amount of blog posts demonizing cairngorm. I am really excited to see what comes out of this move.. As I develop more with cairngorm I think my initial role in participation will be publishing anecdotal case studies, but perhaps in the future when I have more time to devote, I can get into participating in the future development whether its feature suggestions, roadmap discussion, or contributing patches/fixes. I’m just stoked that the ability is now there for the community to participate in an organized way now.
    Kudos Adobe Consulting!