I don't have experience using Cairngorm, but I do have experience using ARP 
in Flash & Flex.

First, the marketing & goals side.

Comparing them is Apples and Oranges.  Yes, both are using good design 
pattern implementations, yes, both were developed based on similiar ideas, 
but they both have different goals.

ARP is in transition (in my opinion) right now.  Aral, like the Cairngorm 
team, is very respectful of the community's input, and as such has enlisted 
people on the ARP Advistory Comittee to help steer it, along with everyone 
else on various lists.  The Flash Developer community is in flux.  There are 
those who see their future in Flex, via the obvious signs such as a 
component set updated for Flex, not for Flash, and the not-so-obvious, such 
as the evangelizing of its many other merits such as MXML.  Most qualified 
Flash Developers are more than capable of becoming Flex developers, and most 
of their coding concepts port to Flex' workflow, ARP being one of them.

ARP is meant to be lightweight.  Since a lot of Flash apps are not always as 
heavyweight as Flex apps, and have significantly shorter dev cycles, 
over-OOP'ing something doesn't help.  As such, ARP is light enough that you 
can not only use just some of it, but if you had to, it'd scale well later 
if you added more features to your app; case in point, scope creep.

Cairngorm, amongst many others I'm leaving out, is meant to help those 
coming from the J2EE Enterprise sphere maximize their current knowledge, and 
provide common ground in Flex.  Most J2EE guys that came to Flash 
originally, at least that I've talked too, left.  So, different angle.  Flex 
satifies those expectations for that crowd.  From my perspective, Flex 
abstracts a LOT of the low-level bs us Flashers are getting sick of dealing 
with.  However, from a J2EE gents perspective, there is still much to be 
further abstracted, so Cairngorm too helps in that arena.  Some of those 
from the Flash world have a hard time letting go, so one can see how ARP 
provides a nice lighter weight alternative that still gives you the patterns 
you want, and allowing you to keep the low-level control you're used too.

Second, the features...

As such, ARP does not have some of the things the Cairngorm has, and rightly 
so.  Flash doesn't have a concept of "Application.mxml" unless you hack it 
in; this is how Flash was designed, and everyone has their own opinion on 
how to do this, even ARP.  In Flex, it's abundently clear = use Application 
or Cairngorm's extension of it.  Because Flash apps are more apt to be 
portable since you can more easily control the loading of individual SWF's 
(unless your Darron Schall), spending time confirming such a path is 
pointless; you will not satisfy all the people all the time, and it's a 
better use of time providing a light-weight alternative vs. a standard.

There are many ways, both technically, and design wise to handle data in 
Flash.  In Flex, it's clear: HTTPService, WebService, or RemoteObject, and 
each has a pretty standard use; getting data for your Views.  In Flash, the 
variety of scope provides little common ground, so while you'll find a 
ModelLocator in Cairngorm, you won't find one in ARP.  While I personally 
need something like that, many others do not work on the scope of Flash 
projects I work on, and as such don't need that.  There are, however, many 
that DO work on large scope Flash projects who would rather be working in 
Flex, and as such, probably implement their own version simply out of 
necessity until Zorn hopefully provides an acceptable price point.

I have as of yet managed to get my head wrapped around ViewHelpers.  In 
Cairngorms' defense, I've seen some insane forms developed by Flex people, 
and as such, managing pulling/putting data from them could benefit from 
them.  Additionally, from those coming from Tapestry, or any other HTML 
esque world where you try to hide the actual implementation from the data, 
it makes sense.

In the Flash world, it doesn't make sense.  You don't build big forms, you 
build modular ones mainly because Flash isn't as easy as Flex is to make 
great forms, and secondly, keep track of your View's in Flash, you're pretty 
close to the details of how they are made, and as such, a few getter/setters 
seems like a HUGE abstraction when in that perspective.  As such, if a 
Command in ARP for example has little problem deducing the data it needs to 
pull from a View; it just uses the getters since the import statement is 
right there.

I still cannot see, however, that as my forms got more complex and 
innovative, justifying an additional layer of abstraction for data 
removal/replacing... my Commands currently work just fine for that.

But, my opinions change everday as I learn more, so it may change tomorrow.

In conclusion, my current version of MVC and ARP work just fine in Flash & 
Flex, and I have as of yet run into scalability problems.  Perhaps if my 
Flex work were to increase post-Zorn, and I did, I may look into 
alternatives such as AS2Lib & Cairngorm, but for now, I enjoy the 
lightweight implementation of ARP, and it's use in Flex.  Remember, I'm 
coming from Flash where things suck for a developer and are greatly improved 
in Flex so my expectations are EXTREMELY low; Flex, by itself, exceeds them 
10 fold.  A framework is just icing at this point.

----- Original Message ----- 
From: "mackdoyle" <[EMAIL PROTECTED]>
To: <flexcoders@yahoogroups.com>
Sent: Friday, August 05, 2005 9:59 AM
Subject: [flexcoders] Cairngorm vs ARP


Does anyone have experience working with both and can give a good
comparative analysis? And what about MossyBlog's Synergy?



------------------------ Yahoo! Groups Sponsor --------------------~--> 
<font face=arial size=-1><a 
href="http://us.ard.yahoo.com/SIG=12h24l2qq/M=362131.6882499.7825260.1510227/D=groups/S=1705007207:TM/Y=YAHOO/EXP=1123261136/A=2889191/R=0/SIG=10r90krvo/*http://www.thebeehive.org
">Get Bzzzy! (real tools to help you find a job) Welcome to the Sweet Life 
- brought to you by One Economy</a>.</font>
--------------------------------------------------------------------~-> 

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to