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?