<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Do we need third-party Flex frameworks?</title>
	<atom:link href="http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/feed" rel="self" type="application/rss+xml" />
	<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks</link>
	<description>A blog about our experience with Adobe Flex</description>
	<lastBuildDate>Tue, 27 Jul 2010 22:15:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: verdant</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-35016</link>
		<dc:creator>verdant</dc:creator>
		<pubDate>Mon, 18 Feb 2008 23:36:54 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-35016</guid>
		<description>This is an interesting discussion.
I am a Flex newbie coming from developing in Java, .NET, C++. Like most developers I think in patterns. So using Cliff&#039;s analogy, I think in 7/11 Stair Pattern all the time. I am given a problem and I solve it using the tools I have used on many jobs over the years - patterns. I don&#039;t need an architect to write it on the blueprint - regardless of what is written the stair will be 7/11. 
This discussion is whether you *need* frameworks when using Flex. And I have come to the conclusion that you don&#039;t. 
Before that, I endured a good few weeks trying to wrap my head around Cairngorm and coming to the conclusion that it was convoluted and felt &quot;wierd&quot;,(like those odd steps), cursing whoever dreamt up this unnatural way of working. 
I have seen this in enterprise projects where the code becomes increasingly complex and over-engineered to comply with rules dictated by the architecture police. The end result is bloated code millions of lines long and hundreds of layers deep that is impossible to maintain. Cairngorm seems to love god-objects, reams of boilerplate code and provides unmaintainability out-of-the-box.
I doubted myself at first because I&#039;m a newbie, and if the &quot;experts&quot; are using Cairngorm then it must do something and I am just missing the point. But now I am not so sure. Flex does 90% of what I need without any additional &quot;frameworks&quot;, and the other 10% can be delivered using standard patterns.</description>
		<content:encoded><![CDATA[<p>This is an interesting discussion.<br />
I am a Flex newbie coming from developing in Java, .NET, C++. Like most developers I think in patterns. So using Cliff&#8217;s analogy, I think in 7/11 Stair Pattern all the time. I am given a problem and I solve it using the tools I have used on many jobs over the years &#8211; patterns. I don&#8217;t need an architect to write it on the blueprint &#8211; regardless of what is written the stair will be 7/11.<br />
This discussion is whether you *need* frameworks when using Flex. And I have come to the conclusion that you don&#8217;t.<br />
Before that, I endured a good few weeks trying to wrap my head around Cairngorm and coming to the conclusion that it was convoluted and felt &#8220;wierd&#8221;,(like those odd steps), cursing whoever dreamt up this unnatural way of working.<br />
I have seen this in enterprise projects where the code becomes increasingly complex and over-engineered to comply with rules dictated by the architecture police. The end result is bloated code millions of lines long and hundreds of layers deep that is impossible to maintain. Cairngorm seems to love god-objects, reams of boilerplate code and provides unmaintainability out-of-the-box.<br />
I doubted myself at first because I&#8217;m a newbie, and if the &#8220;experts&#8221; are using Cairngorm then it must do something and I am just missing the point. But now I am not so sure. Flex does 90% of what I need without any additional &#8220;frameworks&#8221;, and the other 10% can be delivered using standard patterns.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yakov Fain</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34941</link>
		<dc:creator>Yakov Fain</dc:creator>
		<pubDate>Mon, 28 Jan 2008 04:09:56 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34941</guid>
		<description>Cliff,

I don&#039;t agree with your shantytown analogy. I live in the area where you can find very nice looking development with buildings that look alike, but the nicest developments are those where each house was custom-built. While a framewtork allow some freedom of programming, the best result are achieved when an application uses only those building blocks that are needed for this particular application.

I can&#039;t argue about pureMVC as I did not have a chance to use it, butwell-designed framework/class library should seemlesly blend into your application. When you look at the application&#039;s code, you should see...the application-specific code, and not model locators, delegates, commands, etc. This is definitely not the case with Cairngorm. 
I&#039;ve joined one of my current projects too late in the game. It consists of 20 separate Flex modules and uses Cairngorm.  The code looks convoluted and unnecessary heavy. I do not allow using Cairngorm for development of the new modules for this application. I&#039;d be happy to remove Cairngorm completely, but it turned out to be an expensive project.</description>
		<content:encoded><![CDATA[<p>Cliff,</p>
<p>I don&#8217;t agree with your shantytown analogy. I live in the area where you can find very nice looking development with buildings that look alike, but the nicest developments are those where each house was custom-built. While a framewtork allow some freedom of programming, the best result are achieved when an application uses only those building blocks that are needed for this particular application.</p>
<p>I can&#8217;t argue about pureMVC as I did not have a chance to use it, butwell-designed framework/class library should seemlesly blend into your application. When you look at the application&#8217;s code, you should see&#8230;the application-specific code, and not model locators, delegates, commands, etc. This is definitely not the case with Cairngorm.<br />
I&#8217;ve joined one of my current projects too late in the game. It consists of 20 separate Flex modules and uses Cairngorm.  The code looks convoluted and unnecessary heavy. I do not allow using Cairngorm for development of the new modules for this application. I&#8217;d be happy to remove Cairngorm completely, but it turned out to be an expensive project.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: puremvc</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34937</link>
		<dc:creator>puremvc</dc:creator>
		<pubDate>Sat, 26 Jan 2008 22:02:50 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34937</guid>
		<description>Hi folks,

The reason I wrote PureMVC was so that people without a lot of design pattern background could be given a set of patterns and a recommended program structure that solve the MVC problem without it having to be cooked up from scratch on every application. 

There&#039;s nothing wrong with building something from scratch, just &#039;doing whatever works&#039;, but the problem is that 6 months later you yourself may not remember what you were thinking. And given the common developer&#039;s lack of documentation discipline, it&#039;s unlikely that &#039;whatever worked&#039; was actually documented. 

So 6 months later when a totally different developer approaches your code, if they know the framework, then they only need to understand the problem domain to make immediate progress. A quick survey of the app will show everything is in place and doing what one would expect and you get on with extending the app. This is where the case for maintainability is made. 

Over the last year, I&#039;ve looked at a lot of applications written in PureMVC by other people and - surprise - they usually look exactly as if I had written them myself. There is a lot of benefit to be had in having a well-defined methodology for the core organization of an app.

Think about where Design Patterns come from. We stole them from ACTUAL architects - people who draw up the blueprints for the buildings we live and work in. Now consider if the home you are living in were NOT architected AT ALL. The builders show up with some materials, have a look at your land and start hammering away. Depending on the skill of the builder, you might end up with something that&#039;ll keep the rain off, but wouldn&#039;t you feel safer in a nice well-architected house? One where all the major issues with home-dwelling had all been taken into account  and handled with tried and tested methods (architectural patterns)? 

Scalability is also enhanced because the way to add new use cases to the system is clear. In a system without a sound architecture, the way to add new functionality (without breaking the old) is not always so clear. To return to the un-architected house metaphor, if your house wasn&#039;t architected, and furthermore, neither was your town, then adding new houses and getting to them would be, well, a shantytown: http://www.laputan.org/mud/mud.html#BigBallOfMud

Here&#039;s an everyday issue with civil hacking without patterns that you&#039;ll be familiar with. 

Do you know how sometimes you walk up or down a set of stairs and they just feel wrong? You look at them and they seem well built, maybe even covered with granite, and nice little sandy footgrip pads, but still when you walk those stairs you feel weird? The step is too long or not long enough, too tall or not tall enough, somehow you stagger up and down them, cursing whoever built them. That&#039;s because the builder / architect completely failed to apply the 7/11 Stair Pattern. Seven inches up, Eleven inches out. That&#039;s just right for most humans and its the pattern for most stairs. Except the poorly architected ones.

-=Cliff&gt;</description>
		<content:encoded><![CDATA[<p>Hi folks,</p>
<p>The reason I wrote PureMVC was so that people without a lot of design pattern background could be given a set of patterns and a recommended program structure that solve the MVC problem without it having to be cooked up from scratch on every application. </p>
<p>There&#8217;s nothing wrong with building something from scratch, just &#8216;doing whatever works&#8217;, but the problem is that 6 months later you yourself may not remember what you were thinking. And given the common developer&#8217;s lack of documentation discipline, it&#8217;s unlikely that &#8216;whatever worked&#8217; was actually documented. </p>
<p>So 6 months later when a totally different developer approaches your code, if they know the framework, then they only need to understand the problem domain to make immediate progress. A quick survey of the app will show everything is in place and doing what one would expect and you get on with extending the app. This is where the case for maintainability is made. </p>
<p>Over the last year, I&#8217;ve looked at a lot of applications written in PureMVC by other people and &#8211; surprise &#8211; they usually look exactly as if I had written them myself. There is a lot of benefit to be had in having a well-defined methodology for the core organization of an app.</p>
<p>Think about where Design Patterns come from. We stole them from ACTUAL architects &#8211; people who draw up the blueprints for the buildings we live and work in. Now consider if the home you are living in were NOT architected AT ALL. The builders show up with some materials, have a look at your land and start hammering away. Depending on the skill of the builder, you might end up with something that&#8217;ll keep the rain off, but wouldn&#8217;t you feel safer in a nice well-architected house? One where all the major issues with home-dwelling had all been taken into account  and handled with tried and tested methods (architectural patterns)? </p>
<p>Scalability is also enhanced because the way to add new use cases to the system is clear. In a system without a sound architecture, the way to add new functionality (without breaking the old) is not always so clear. To return to the un-architected house metaphor, if your house wasn&#8217;t architected, and furthermore, neither was your town, then adding new houses and getting to them would be, well, a shantytown: <a href="http://www.laputan.org/mud/mud.html#BigBallOfMud" rel="nofollow">http://www.laputan.org/mud/mud.html#BigBallOfMud</a></p>
<p>Here&#8217;s an everyday issue with civil hacking without patterns that you&#8217;ll be familiar with. </p>
<p>Do you know how sometimes you walk up or down a set of stairs and they just feel wrong? You look at them and they seem well built, maybe even covered with granite, and nice little sandy footgrip pads, but still when you walk those stairs you feel weird? The step is too long or not long enough, too tall or not tall enough, somehow you stagger up and down them, cursing whoever built them. That&#8217;s because the builder / architect completely failed to apply the 7/11 Stair Pattern. Seven inches up, Eleven inches out. That&#8217;s just right for most humans and its the pattern for most stairs. Except the poorly architected ones.</p>
<p>-=Cliff&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victor Rasputnis</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34481</link>
		<dc:creator>Victor Rasputnis</dc:creator>
		<pubDate>Sat, 29 Dec 2007 22:36:43 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34481</guid>
		<description>If I could sum up: people participating in discussion are confirming that flamework side of the Flex framework (and hence, structure, definition, guidance, etc.) remains hidden treasury - at lest for the unarmed eye. Certainly, that&#039;s a subject for Adobe evangelists and training teams to address. We all should understand, however, that during the early adoption cycle deep dive into coding practices had been almost a taboo, it is so bo-o-ring for the audiences that come to see how _easy_ it is to put a gallery of pictures with transitions into a TileList. In fact, initial part of the Adobe training had been purposely avoiding coding subjects to accomodate wider range, including designers etc - and rightfully so. When you train a corporate client and talk to coders with the similar skills and background it&#039;s a totally different story, of course. I would not be surprised if Adobe come with the course labeled Flex for developers: after all, the answers are already in the documentation, they just need to be brought up to light.</description>
		<content:encoded><![CDATA[<p>If I could sum up: people participating in discussion are confirming that flamework side of the Flex framework (and hence, structure, definition, guidance, etc.) remains hidden treasury &#8211; at lest for the unarmed eye. Certainly, that&#8217;s a subject for Adobe evangelists and training teams to address. We all should understand, however, that during the early adoption cycle deep dive into coding practices had been almost a taboo, it is so bo-o-ring for the audiences that come to see how _easy_ it is to put a gallery of pictures with transitions into a TileList. In fact, initial part of the Adobe training had been purposely avoiding coding subjects to accomodate wider range, including designers etc &#8211; and rightfully so. When you train a corporate client and talk to coders with the similar skills and background it&#8217;s a totally different story, of course. I would not be surprised if Adobe come with the course labeled Flex for developers: after all, the answers are already in the documentation, they just need to be brought up to light.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: judah</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34479</link>
		<dc:creator>judah</dc:creator>
		<pubDate>Sat, 29 Dec 2007 21:01:45 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34479</guid>
		<description>I think the Flex framework provides a lot of what a developer needs. Still there is this open ended ness to it that new developers don&#039;t know where to start or how to architect their projects. It is much like a foundation with a wonderful toolbox and lots of &quot;lego&quot; pieces. Still it lacks a clear direction for some common and some obscure puzzles developers face such as global variables, singletons, etc. But these are not enough to prevent someone from finishing a application successfully. 

I have to agree with Anatole that a framework can help define a structure when working on a team. To answer the question, I think a third party framework can provide structure, definition and solve some puzzles developers face but I think they are too much overhead for many projects. I do not have time. I can write something clean and precise without following a framework. What I would like to see is more structure and best practices for the existing Flex framework.</description>
		<content:encoded><![CDATA[<p>I think the Flex framework provides a lot of what a developer needs. Still there is this open ended ness to it that new developers don&#8217;t know where to start or how to architect their projects. It is much like a foundation with a wonderful toolbox and lots of &#8220;lego&#8221; pieces. Still it lacks a clear direction for some common and some obscure puzzles developers face such as global variables, singletons, etc. But these are not enough to prevent someone from finishing a application successfully. </p>
<p>I have to agree with Anatole that a framework can help define a structure when working on a team. To answer the question, I think a third party framework can provide structure, definition and solve some puzzles developers face but I think they are too much overhead for many projects. I do not have time. I can write something clean and precise without following a framework. What I would like to see is more structure and best practices for the existing Flex framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: polesen</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34477</link>
		<dc:creator>polesen</dc:creator>
		<pubDate>Sat, 29 Dec 2007 12:42:44 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34477</guid>
		<description>Hi Yakov. I sure can live without a framework, .. I do now :-)

Are you totally against application frameworks in the flex world, or are you simply against the ones present now? Maybe it is because there isn&#039;t one yet, that satisfies your needs? If this is the case, maybe, by making clear (a) what you don&#039;t like in the existing and (b) what you would like, could start a movement for a better flex framework!?</description>
		<content:encoded><![CDATA[<p>Hi Yakov. I sure can live without a framework, .. I do now <img src='http://flexblog.faratasystems.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Are you totally against application frameworks in the flex world, or are you simply against the ones present now? Maybe it is because there isn&#8217;t one yet, that satisfies your needs? If this is the case, maybe, by making clear (a) what you don&#8217;t like in the existing and (b) what you would like, could start a movement for a better flex framework!?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yakov Fain</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34474</link>
		<dc:creator>Yakov Fain</dc:creator>
		<pubDate>Sat, 29 Dec 2007 05:35:47 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34474</guid>
		<description>To polesen

You came from a Java world that has about 50 Web frameworks, and so did I.
But I believe that Java Struts framework is bad, and when I see all these Flex frameworks that are built around MVC, it\&#039;s clear to me that they were created by a former Java Struts programmers.

Please try to forget  Struts, think more loosely coupled Spring, if you can\&#039;t live without a framework.</description>
		<content:encoded><![CDATA[<p>To polesen</p>
<p>You came from a Java world that has about 50 Web frameworks, and so did I.<br />
But I believe that Java Struts framework is bad, and when I see all these Flex frameworks that are built around MVC, it\&#8217;s clear to me that they were created by a former Java Struts programmers.</p>
<p>Please try to forget  Struts, think more loosely coupled Spring, if you can\&#8217;t live without a framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: polesen</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34397</link>
		<dc:creator>polesen</dc:creator>
		<pubDate>Fri, 28 Dec 2007 20:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34397</guid>
		<description>I can only agree with what Greylurk hinted at: We should be careful with the application &quot;framework&quot; term here. To me, flex is not a framework, it is a library of reusable components and classes, combined with a SDK. Together with the flashplayer, this makes the platform for developing applications in flash. But, it is not a framework, as I understand frameworks.

There are tons of ways to combine the library classes and tons of ways to organize the source code of flex applications. Guidance can be a good thing, which you can get from a framework. Now, I have not myself used a flex framework yet, but I will be having a look at PureMVC. Maybe I like it. Maybe I don&#039;t. Maybe I shall then look at another. I come from a Java world filled with frameworks. Sure enough, there are some good ones, but there are also lots of not-that-great-ones (again, to me, that is).

I think it is a good thing with frameworks on top of flex (which is not an application framework in itself).</description>
		<content:encoded><![CDATA[<p>I can only agree with what Greylurk hinted at: We should be careful with the application &#8220;framework&#8221; term here. To me, flex is not a framework, it is a library of reusable components and classes, combined with a SDK. Together with the flashplayer, this makes the platform for developing applications in flash. But, it is not a framework, as I understand frameworks.</p>
<p>There are tons of ways to combine the library classes and tons of ways to organize the source code of flex applications. Guidance can be a good thing, which you can get from a framework. Now, I have not myself used a flex framework yet, but I will be having a look at PureMVC. Maybe I like it. Maybe I don&#8217;t. Maybe I shall then look at another. I come from a Java world filled with frameworks. Sure enough, there are some good ones, but there are also lots of not-that-great-ones (again, to me, that is).</p>
<p>I think it is a good thing with frameworks on top of flex (which is not an application framework in itself).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kewball</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34293</link>
		<dc:creator>kewball</dc:creator>
		<pubDate>Thu, 27 Dec 2007 21:22:32 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34293</guid>
		<description>I&#039;m already into &lt; rant &gt; mode after wrestling through today&#039;s second code example of Flex widget &quot;X&quot; that is thoroughly obfuscated by Cairngorm abstraction.  I&#039;m trying to understand how &quot;X&quot; works, not Cairngorm.  And no, &quot;X&quot; isn&#039;t at all related to the Cairngorm framework other than it&#039;s part of a Flex project.  Indeed when the example writer provides this instruction, &quot;you&#039;ll need to include Cairngorm.swc in your project...&quot; then it&#039;s clear that the author himself realizes a) Cairngorm isn&#039;t necessary for the job at hand and b) he&#039;s writing for an audience that doesn&#039;t use Cairngorm. Bleh!

I grant the possibility, however remote, that Cairngorm, et al have a useful purpose but never, ever in Flex example code, unless the example is of the framework itself.</description>
		<content:encoded><![CDATA[<p>I&#8217;m already into &lt; rant &gt; mode after wrestling through today&#8217;s second code example of Flex widget &#8220;X&#8221; that is thoroughly obfuscated by Cairngorm abstraction.  I&#8217;m trying to understand how &#8220;X&#8221; works, not Cairngorm.  And no, &#8220;X&#8221; isn&#8217;t at all related to the Cairngorm framework other than it&#8217;s part of a Flex project.  Indeed when the example writer provides this instruction, &#8220;you&#8217;ll need to include Cairngorm.swc in your project&#8230;&#8221; then it&#8217;s clear that the author himself realizes a) Cairngorm isn&#8217;t necessary for the job at hand and b) he&#8217;s writing for an audience that doesn&#8217;t use Cairngorm. Bleh!</p>
<p>I grant the possibility, however remote, that Cairngorm, et al have a useful purpose but never, ever in Flex example code, unless the example is of the framework itself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victor Rasputnis</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34289</link>
		<dc:creator>Victor Rasputnis</dc:creator>
		<pubDate>Thu, 27 Dec 2007 18:10:36 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34289</guid>
		<description>Flex Framework has been designed and implemented as a _framework_. It is not up to us to &quot;apply&quot; the word framework to Flex, it&#039;s them, the Flex team, who came with the Flex Framework by design. What I see quite often, however, is that level of training behind today&#039;s Flex projects is far beyond the required to tap into opportunities Flex framework provides for free. One outcome of this is  homegrown frameworks, which re-invent the wheel  (at the very best). True, each framework fulfills the need. The grounds for this need should be questioned though. So, my point is  the reasonable approach might be to start with the question: how is this design issue is _supposed_ to be addressed in FLEX FRAMEWORK? Chances are, if you ask the Flex expert, you might not need to create a &quot;new&quot; solution. As far as getting _familair_ with each 3rd party framework, if one can&#039;t think of anything better to do, why not. I&#039;d rather _study_ Flex.</description>
		<content:encoded><![CDATA[<p>Flex Framework has been designed and implemented as a _framework_. It is not up to us to &#8220;apply&#8221; the word framework to Flex, it&#8217;s them, the Flex team, who came with the Flex Framework by design. What I see quite often, however, is that level of training behind today&#8217;s Flex projects is far beyond the required to tap into opportunities Flex framework provides for free. One outcome of this is  homegrown frameworks, which re-invent the wheel  (at the very best). True, each framework fulfills the need. The grounds for this need should be questioned though. So, my point is  the reasonable approach might be to start with the question: how is this design issue is _supposed_ to be addressed in FLEX FRAMEWORK? Chances are, if you ask the Flex expert, you might not need to create a &#8220;new&#8221; solution. As far as getting _familair_ with each 3rd party framework, if one can&#8217;t think of anything better to do, why not. I&#8217;d rather _study_ Flex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anatole Tartakovsky</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34288</link>
		<dc:creator>Anatole Tartakovsky</dc:creator>
		<pubDate>Thu, 27 Dec 2007 18:05:40 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34288</guid>
		<description>Oops - comments are drifting away from the topic. Here is brief recap of what the main topic is. Steven says that you might want to build application on a certain architectural frame  - there is a notion of skeleton there. In reality, it is not a skeleton of your future applications (that would be &quot;application&quot;* framework and not the &quot;patterns&quot; one) but rather set of communication patterns (outlets) and implementation classes (application bus wiring). 

Yakovs point is more of &quot;why get a cow when you can have milk for free&quot;. Why do I need extra framework with a lot of duplicate functionality to the Flex one? Why do I have to do all manual labor of wiring and configuration instead of objects falling into places themselves and registering themselves by taking advantage of Flex built-in code generators**? Should we just treat patterns for what they really are and package them in the way we package other reusable objects? Should they be parallel framework or rather extension (or even aspect-based override) of the existing ones? Can useful patterns be that simple? Why I need global objects if I build modular application and most of my events are local? What is wrong with registration and broadcasting events via standard extensible singletons like Application?

Very few new developers think of Flex as framework. Simple fact that demos/samples work &quot;somehow&quot; by falling into internal communication patterns seems so natural that the question &quot;how&quot; is never asked. Binding, event notification and delegation are pre-built and code generated based on the tiny little metatags we place automatically - and it just works. Another loosely bind framework is CSS implementation. You place objects, apply &quot;CSS&quot; and the behavior/presentation chages - across multiple objects. Again - code generation and pre-built functionality work miracles. And Flex is rich with patterns that like class factories - it is foundation of the current release and becomes more profound with Flex 3 and Thermo. If you master  and dynamic resources they provide solid foundation for customization and wiring in any imaginable way. 

The only benefits of &quot;structured framework&quot;  approach I can see are in the areas of project management ( well overshadowed by consequences I have seen when asked to take over failed projects - see my answers to Yakov) and some applications closely matching the ones used as testbed for the framework itself - if you think sample application does what you want to do and scope is similar - go for it. If the main reason to go with architectural framework is lack of Flex knowledge and it comes with samples/there is a lot of code - use Steven&#039;s guiding principles &quot;When not to use architectural framework&quot;

Regards,
Anatole 

*Application frameworks are essentially applications stripped out of some implementation details and generalized in the places that are most likely to be customized. Indeed, for your application skeleton you want something similar in  size and shape - starting &quot;fish&quot; with &quot;girafees&quot; skeleton is going to be challenging at least. With a good fit though, you can have &quot;working&quot; app much faster - even with time for adoption and training

** Look at the compiler output to see all the initialization code Flex generated for you - why not use metatags and code generators?  Hopefully, with Flex compiler going open source this week ( I believe Adobe mention end of the year in their May press release) most of our code generators can be rolled in. From the management perspective, I firmly believe that writing tons of  code should be banned in most of applications.</description>
		<content:encoded><![CDATA[<p>Oops &#8211; comments are drifting away from the topic. Here is brief recap of what the main topic is. Steven says that you might want to build application on a certain architectural frame  &#8211; there is a notion of skeleton there. In reality, it is not a skeleton of your future applications (that would be &#8220;application&#8221;* framework and not the &#8220;patterns&#8221; one) but rather set of communication patterns (outlets) and implementation classes (application bus wiring). </p>
<p>Yakovs point is more of &#8220;why get a cow when you can have milk for free&#8221;. Why do I need extra framework with a lot of duplicate functionality to the Flex one? Why do I have to do all manual labor of wiring and configuration instead of objects falling into places themselves and registering themselves by taking advantage of Flex built-in code generators**? Should we just treat patterns for what they really are and package them in the way we package other reusable objects? Should they be parallel framework or rather extension (or even aspect-based override) of the existing ones? Can useful patterns be that simple? Why I need global objects if I build modular application and most of my events are local? What is wrong with registration and broadcasting events via standard extensible singletons like Application?</p>
<p>Very few new developers think of Flex as framework. Simple fact that demos/samples work &#8220;somehow&#8221; by falling into internal communication patterns seems so natural that the question &#8220;how&#8221; is never asked. Binding, event notification and delegation are pre-built and code generated based on the tiny little metatags we place automatically &#8211; and it just works. Another loosely bind framework is CSS implementation. You place objects, apply &#8220;CSS&#8221; and the behavior/presentation chages &#8211; across multiple objects. Again &#8211; code generation and pre-built functionality work miracles. And Flex is rich with patterns that like class factories &#8211; it is foundation of the current release and becomes more profound with Flex 3 and Thermo. If you master  and dynamic resources they provide solid foundation for customization and wiring in any imaginable way. </p>
<p>The only benefits of &#8220;structured framework&#8221;  approach I can see are in the areas of project management ( well overshadowed by consequences I have seen when asked to take over failed projects &#8211; see my answers to Yakov) and some applications closely matching the ones used as testbed for the framework itself &#8211; if you think sample application does what you want to do and scope is similar &#8211; go for it. If the main reason to go with architectural framework is lack of Flex knowledge and it comes with samples/there is a lot of code &#8211; use Steven&#8217;s guiding principles &#8220;When not to use architectural framework&#8221;</p>
<p>Regards,<br />
Anatole </p>
<p>*Application frameworks are essentially applications stripped out of some implementation details and generalized in the places that are most likely to be customized. Indeed, for your application skeleton you want something similar in  size and shape &#8211; starting &#8220;fish&#8221; with &#8220;girafees&#8221; skeleton is going to be challenging at least. With a good fit though, you can have &#8220;working&#8221; app much faster &#8211; even with time for adoption and training</p>
<p>** Look at the compiler output to see all the initialization code Flex generated for you &#8211; why not use metatags and code generators?  Hopefully, with Flex compiler going open source this week ( I believe Adobe mention end of the year in their May press release) most of our code generators can be rolled in. From the management perspective, I firmly believe that writing tons of  code should be banned in most of applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yakov Fain</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34286</link>
		<dc:creator>Yakov Fain</dc:creator>
		<pubDate>Thu, 27 Dec 2007 17:08:11 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34286</guid>
		<description>I never said without Flex framework. I said without a third-party framework on top of Flex framework.</description>
		<content:encoded><![CDATA[<p>I never said without Flex framework. I said without a third-party framework on top of Flex framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jgervin</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34284</link>
		<dc:creator>jgervin</dc:creator>
		<pubDate>Thu, 27 Dec 2007 16:32:45 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34284</guid>
		<description>Not all Flex developers have 15 years of enterprise development. Your article might be more well-received if you would give examples. Maybe  recreate the CafeTownsend without a Flex Framework and illustrate the benefits (for you) and how where the frameworks hurt the CafeTownsend project.</description>
		<content:encoded><![CDATA[<p>Not all Flex developers have 15 years of enterprise development. Your article might be more well-received if you would give examples. Maybe  recreate the CafeTownsend without a Flex Framework and illustrate the benefits (for you) and how where the frameworks hurt the CafeTownsend project.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greylurk</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34282</link>
		<dc:creator>Greylurk</dc:creator>
		<pubDate>Thu, 27 Dec 2007 15:47:59 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34282</guid>
		<description>I&#039;m pretty new to the Flex Arena, and I haven&#039;t looked at PureMVC at all, but coming from the ColdFusion world, where &quot;frameworks&quot; have proliferated, I have a few things to add to the conversation. 

As to why you would want multiple frameworks for an application (or development platform), think briefly about what a framework really is.  It&#039;s a library of pre-written code that provides services for your application, and a library of recommeded design patterns for interfacing with that library of code.  Looking at things this way, the Flex Framework, isn&#039;t so much a &quot;framework&quot; as a base Object Library, similar to the .Net API, or the Java API, or even the old school Win32 API.  Just because we&#039;ve applied the word &quot;Framework&quot; to the Flex core API doesn&#039;t mean that we don&#039;t need some other code or design pattern libraries to build a complete application.  You can start building a .Net application using just the Windows.Forms API, but as soon as you start moving outside of the trivial applications, you&#039;re going to start needing an architectural framework to decide how to lay out your code, and a unit-testing framework to prove that your classes are providing advertised functionality.  

These frameworks aren&#039;t being created just because someone has too much time on their hands, and can&#039;t think of anything better to do.  They&#039;re being created because they fulfil a need.  Each of them provides a service that the others don&#039;t, or a combination of services the others don&#039;t.  You don&#039;t (and shouldnt need to) know all of them, or use all of them, and you definitely shouldn&#039;t be recommending them to clients or refusing to recommend them to clients.  You should be familiar with what problems each of them solves, and use them when appropriate.  Cairngorm isn&#039;t suited to every single Flex Project.  PureMVC isn&#039;t suited to every single Flex projet, nor is Model Glue Flex.  However, sometimes one or more of them is appropriate.  Being familiar with when each is apprpriate is tough, but a worthwhile exercise.</description>
		<content:encoded><![CDATA[<p>I&#8217;m pretty new to the Flex Arena, and I haven&#8217;t looked at PureMVC at all, but coming from the ColdFusion world, where &#8220;frameworks&#8221; have proliferated, I have a few things to add to the conversation. </p>
<p>As to why you would want multiple frameworks for an application (or development platform), think briefly about what a framework really is.  It&#8217;s a library of pre-written code that provides services for your application, and a library of recommeded design patterns for interfacing with that library of code.  Looking at things this way, the Flex Framework, isn&#8217;t so much a &#8220;framework&#8221; as a base Object Library, similar to the .Net API, or the Java API, or even the old school Win32 API.  Just because we&#8217;ve applied the word &#8220;Framework&#8221; to the Flex core API doesn&#8217;t mean that we don&#8217;t need some other code or design pattern libraries to build a complete application.  You can start building a .Net application using just the Windows.Forms API, but as soon as you start moving outside of the trivial applications, you&#8217;re going to start needing an architectural framework to decide how to lay out your code, and a unit-testing framework to prove that your classes are providing advertised functionality.  </p>
<p>These frameworks aren&#8217;t being created just because someone has too much time on their hands, and can&#8217;t think of anything better to do.  They&#8217;re being created because they fulfil a need.  Each of them provides a service that the others don&#8217;t, or a combination of services the others don&#8217;t.  You don&#8217;t (and shouldnt need to) know all of them, or use all of them, and you definitely shouldn&#8217;t be recommending them to clients or refusing to recommend them to clients.  You should be familiar with what problems each of them solves, and use them when appropriate.  Cairngorm isn&#8217;t suited to every single Flex Project.  PureMVC isn&#8217;t suited to every single Flex projet, nor is Model Glue Flex.  However, sometimes one or more of them is appropriate.  Being familiar with when each is apprpriate is tough, but a worthwhile exercise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yakov Fain</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34281</link>
		<dc:creator>Yakov Fain</dc:creator>
		<pubDate>Thu, 27 Dec 2007 14:55:42 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34281</guid>
		<description>See, this is my problem: &quot;If it works for you, use it&quot;. What exactly should work for me? A better structured project that is easier to explain to new team members or your manager or a framework that has clear technical merits like shorter development cycle, better performance, loose coupling between components, simpler architecture? I\&#039;d love to see a comment to this post that would state in a simple down to earth language, &quot;We&#039;ve used so-and-so Flex framework in a so-and-so project. We would not be able to deliver the project on time and it would not be as scalable as it is now without this framework, and these are the reasons 1....2...3....&quot;

I&#039;ve been doing object-oriented programming during the last fifteen years, but I&#039;m not in love with it and would rather not see frameworks created just for the sake of OOP. But this is a whole different discussion altogether.</description>
		<content:encoded><![CDATA[<p>See, this is my problem: &#8220;If it works for you, use it&#8221;. What exactly should work for me? A better structured project that is easier to explain to new team members or your manager or a framework that has clear technical merits like shorter development cycle, better performance, loose coupling between components, simpler architecture? I\&#8217;d love to see a comment to this post that would state in a simple down to earth language, &#8220;We&#8217;ve used so-and-so Flex framework in a so-and-so project. We would not be able to deliver the project on time and it would not be as scalable as it is now without this framework, and these are the reasons 1&#8230;.2&#8230;3&#8230;.&#8221;</p>
<p>I&#8217;ve been doing object-oriented programming during the last fifteen years, but I&#8217;m not in love with it and would rather not see frameworks created just for the sake of OOP. But this is a whole different discussion altogether.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: swebster</title>
		<link>http://flexblog.faratasystems.com/2007/12/27/do-we-need-third-party-flex-frameworks/comment-page-1#comment-34280</link>
		<dc:creator>swebster</dc:creator>
		<pubDate>Thu, 27 Dec 2007 14:23:32 +0000</pubDate>
		<guid isPermaLink="false">http://flexblog.faratasystems.com/?p=280#comment-34280</guid>
		<description>I don&#039;t want to be drawn into the debate too much here.  Every application has an emergent architecture, a fundamental skeleton within which the rest of the application will fit.  You say that &quot;why do people focus on frameworks rather than reusable components&quot;, and I reiterate - the 2 are not mutually exclusive.  A well designed application with Cairngorm will also incorporate reusable components.

I&#039;ll let the rest of the community respond to your post; my thoughts are already laid out as to when you should and shouldn&#039;t use Cairngorm, I don&#039;t believe a black and white answer is the answer, and I&#039;ve always took the position that if it works for you use it (and it works for many people) and that if you have preferences to use something else or something you consider more fit for purpose, then that&#039;s a decision any good developer is capable of making on their project.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t want to be drawn into the debate too much here.  Every application has an emergent architecture, a fundamental skeleton within which the rest of the application will fit.  You say that &#8220;why do people focus on frameworks rather than reusable components&#8221;, and I reiterate &#8211; the 2 are not mutually exclusive.  A well designed application with Cairngorm will also incorporate reusable components.</p>
<p>I&#8217;ll let the rest of the community respond to your post; my thoughts are already laid out as to when you should and shouldn&#8217;t use Cairngorm, I don&#8217;t believe a black and white answer is the answer, and I&#8217;ve always took the position that if it works for you use it (and it works for many people) and that if you have preferences to use something else or something you consider more fit for purpose, then that&#8217;s a decision any good developer is capable of making on their project.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
