<?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: Are components really a good substitute for pages?</title>
	<atom:link href="http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/feed/" rel="self" type="application/rss+xml" />
	<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/</link>
	<description>various stuff, mostly boring</description>
	<lastBuildDate>Mon, 14 May 2012 23:53:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Cosma Colanicchia</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-23325</link>
		<dc:creator>Cosma Colanicchia</dc:creator>
		<pubDate>Mon, 07 May 2007 14:03:30 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-23325</guid>
		<description>Nice post.

I&#039;m studying Flex in these days, and I followed the very same path to handle navigation among views (opposed to pages): viewstack, custom components, events dispatching.

After some years of development for the web, I feel a little lost.. maybe, the AS/MXML should offer some way to describe user navigation concepts (simple jumps, wizard-like, etc.). It seems like Flex does a fine job designing the interaction between the user a single, estabilished view, but force you to code all the navigation logic.</description>
		<content:encoded><![CDATA[<p>Nice post.</p>
<p>I&#8217;m studying Flex in these days, and I followed the very same path to handle navigation among views (opposed to pages): viewstack, custom components, events dispatching.</p>
<p>After some years of development for the web, I feel a little lost.. maybe, the AS/MXML should offer some way to describe user navigation concepts (simple jumps, wizard-like, etc.). It seems like Flex does a fine job designing the interaction between the user a single, estabilished view, but force you to code all the navigation logic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sho</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-2591</link>
		<dc:creator>sho</dc:creator>
		<pubDate>Wed, 16 Aug 2006 16:30:09 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-2591</guid>
		<description>Totally agree, Ethan. We&#039;re working on a doc plan to address this. More examples and sample code!!</description>
		<content:encoded><![CDATA[<p>Totally agree, Ethan. We&#8217;re working on a doc plan to address this. More examples and sample code!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ethan Miller</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-2571</link>
		<dc:creator>Ethan Miller</dc:creator>
		<pubDate>Tue, 15 Aug 2006 00:08:13 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-2571</guid>
		<description>As a very experienced Web designer who&#039;s spent the last few months totally immersed in Flex, I must admit that the difficulty associated with making a link/button/whatever in a custom component go to a state or stack index in anothr component was daunting and still occasionally gives me fits despite my growing comfort with event listeners etc. 

To date remains also hard to find good documentation on this obvious migration issue; that is, web designer to Flex designer. Bottom line: the level of componentization that is obviously required if you were to build a 50 page site will require the web designer to learn a whole lot more actionscript than they knew or would like, with a likely ouotcome of them building it in a way less than idea way given their likley lack of OOP basics.

All that said, having been a Web designer with 12 years of deep experience in HTML/CSS, request/response web apps, I&quot;m pumped on Flex and more eager than ever to get my OOP chops together so I can build complex Flex apps as they should be built. 

My recommendation, which it seems is already in the works, is for much more upfront examples and sample code for the most likely migration issues.

cheers, ethan</description>
		<content:encoded><![CDATA[<p>As a very experienced Web designer who&#8217;s spent the last few months totally immersed in Flex, I must admit that the difficulty associated with making a link/button/whatever in a custom component go to a state or stack index in anothr component was daunting and still occasionally gives me fits despite my growing comfort with event listeners etc. </p>
<p>To date remains also hard to find good documentation on this obvious migration issue; that is, web designer to Flex designer. Bottom line: the level of componentization that is obviously required if you were to build a 50 page site will require the web designer to learn a whole lot more actionscript than they knew or would like, with a likely ouotcome of them building it in a way less than idea way given their likley lack of OOP basics.</p>
<p>All that said, having been a Web designer with 12 years of deep experience in HTML/CSS, request/response web apps, I&#8221;m pumped on Flex and more eager than ever to get my OOP chops together so I can build complex Flex apps as they should be built. </p>
<p>My recommendation, which it seems is already in the works, is for much more upfront examples and sample code for the most likely migration issues.</p>
<p>cheers, ethan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mehul trivedi</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-2124</link>
		<dc:creator>mehul trivedi</dc:creator>
		<pubDate>Tue, 06 Jun 2006 10:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-2124</guid>
		<description>Nice args!!! If we consider en[capsulating] the logice behind the stacks its a very simple arguement. It&#039;s something like hit what you see. But we dont know what is there. In that case we can apply the logic from einstein&#039;s theory... dont memorise something that you can look up...

I think view stack components can defined their own API when loaded that can publish events and frameworks. This can be used to initiate a single from any component like comp1.call(); that will return a map of that component to use... we have many comps in our mail application that does the same trick once loaded...

Ku Sir, I would expect some of your comments on this.

Tx</description>
		<content:encoded><![CDATA[<p>Nice args!!! If we consider en[capsulating] the logice behind the stacks its a very simple arguement. It&#8217;s something like hit what you see. But we dont know what is there. In that case we can apply the logic from einstein&#8217;s theory&#8230; dont memorise something that you can look up&#8230;</p>
<p>I think view stack components can defined their own API when loaded that can publish events and frameworks. This can be used to initiate a single from any component like comp1.call(); that will return a map of that component to use&#8230; we have many comps in our mail application that does the same trick once loaded&#8230;</p>
<p>Ku Sir, I would expect some of your comments on this.</p>
<p>Tx</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sho</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-22</link>
		<dc:creator>Sho</dc:creator>
		<pubDate>Mon, 09 May 2005 17:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-22</guid>
		<description>Great thoughts. Thanks, Ilya! I&#039;ve got a lot to learn about Flex, and it is helpful to hear from people like you who have thought about this more than I have. 

Let me give more background on where my thoughts come from, including the conceptual starting point of &quot;pages&quot;, which I believe was important to the success of the web. 

1) My main worry is that it is too easy for those of us who do programming as a living to forget how important simplicity is for the adoption of a new technology.

Concepts such as objects, events, MVC, etc., are fine when creating big applications or reusable components.

However, when creating a one-off project, people shouldn&#039;t need to learn how to define, dispatch, and catch events just to get their applications built.

Let me take an example from Mac programming in the 80s. In many ways, HyperCard was a direct predecessor to the web. It used a page-based metaphor, along with a simplified scripting language. On the other end of the spectrum was MacApp, which was a framework for serious programmers.

HyperCard and MacApp are for two totally different classes of users and applications. You wouldn&#039;t want to design a full blown desktop app in HyperCard, and you wouldn&#039;t want to introduce MacApp to someone who wasn&#039;t already very comfortable with OO concepts.

The beauty of the web is that it encompasses both types of users and applications. Very simple things can be built simply. Meanwhile, technologies like the J2EE stack exist to service larger, more complex sites.

Both sides of this spectrum are important. My concern is that Flex does not do enough to service the &quot;keep it simple&quot; end of the spectrum.

2) When I talk about things being a &quot;big glob of goo&quot; as far as the outside world is concerned, my concern is not with load time or componentization. 

The issue is that the rest of the web is built with the assumption that applications are broken up into states, and that these states can be captured in the URL (see &lt;a href=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm).&quot; rel=&quot;nofollow&quot;&gt;http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm).&lt;/a&gt; Unlike the true REST advocates, I understand that session state and other factors make it impractical to always store state in the URL, but in 80% of the cases, the URL does just fine.

Web applications are not the same as desktop applications. Decomposing a web app into individual states that are captured through the URL has lots of indirect benefits (scalability, deep linking, indexability, etc.) that we should not take lightly.

Thanks for taking the time to write. I&#039;ll keep posting more thoughts as I learn more about Flex.
</description>
		<content:encoded><![CDATA[<p>Great thoughts. Thanks, Ilya! I&#8217;ve got a lot to learn about Flex, and it is helpful to hear from people like you who have thought about this more than I have. </p>
<p>Let me give more background on where my thoughts come from, including the conceptual starting point of &#8220;pages&#8221;, which I believe was important to the success of the web. </p>
<p>1) My main worry is that it is too easy for those of us who do programming as a living to forget how important simplicity is for the adoption of a new technology.</p>
<p>Concepts such as objects, events, MVC, etc., are fine when creating big applications or reusable components.</p>
<p>However, when creating a one-off project, people shouldn&#8217;t need to learn how to define, dispatch, and catch events just to get their applications built.</p>
<p>Let me take an example from Mac programming in the 80s. In many ways, HyperCard was a direct predecessor to the web. It used a page-based metaphor, along with a simplified scripting language. On the other end of the spectrum was MacApp, which was a framework for serious programmers.</p>
<p>HyperCard and MacApp are for two totally different classes of users and applications. You wouldn&#8217;t want to design a full blown desktop app in HyperCard, and you wouldn&#8217;t want to introduce MacApp to someone who wasn&#8217;t already very comfortable with OO concepts.</p>
<p>The beauty of the web is that it encompasses both types of users and applications. Very simple things can be built simply. Meanwhile, technologies like the J2EE stack exist to service larger, more complex sites.</p>
<p>Both sides of this spectrum are important. My concern is that Flex does not do enough to service the &#8220;keep it simple&#8221; end of the spectrum.</p>
<p>2) When I talk about things being a &#8220;big glob of goo&#8221; as far as the outside world is concerned, my concern is not with load time or componentization. </p>
<p>The issue is that the rest of the web is built with the assumption that applications are broken up into states, and that these states can be captured in the URL (see <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm)." rel="nofollow"></a><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" rel="nofollow">http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm</a>). Unlike the true REST advocates, I understand that session state and other factors make it impractical to always store state in the URL, but in 80% of the cases, the URL does just fine.</p>
<p>Web applications are not the same as desktop applications. Decomposing a web app into individual states that are captured through the URL has lots of indirect benefits (scalability, deep linking, indexability, etc.) that we should not take lightly.</p>
<p>Thanks for taking the time to write. I&#8217;ll keep posting more thoughts as I learn more about Flex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ilya</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-21</link>
		<dc:creator>ilya</dc:creator>
		<pubDate>Sun, 08 May 2005 09:15:06 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-21</guid>
		<description>Although flex might look like on big glob it does not have to be that way.

Using deferred instantiation, the components in your viewstack can be really instantiated when they are required.

Decomposition of your application is very important.  It is completely bad form to make anything but a trivial example in one big hunk of swf bytecode.

The samples application has a pretty neat way of doing something similar.

all loose mxml files that are pulled together at the last moment.

As far as your thoughts about encapsulation and chain of command, you might want to check out the lightweight microarchitecture for Flex called Cairngorm. it uses the frontcontroller/command patterns to solve changes between the main application states. Although you define this as &quot;overkill&quot;, it really is not for maintainable pages.

If you ask: why do I need patterns/architecture for something as trivial as a &quot;go to page&quot;: that is because of your conceptual starting point: a series of pages instead of a combination of screen elements that can interact.

The right way to solve the encapsulation is having your button broadcast a specific event, and the application listening for this specific event. That way the application doesn&#039;t have to know about the existence of the button, the event can also originate from a menu, a keyboard shortcut etc. etc. Take a look at event dispatching and publish subscribe posibilities in Flex.

cheers,

ilya</description>
		<content:encoded><![CDATA[<p>Although flex might look like on big glob it does not have to be that way.</p>
<p>Using deferred instantiation, the components in your viewstack can be really instantiated when they are required.</p>
<p>Decomposition of your application is very important.  It is completely bad form to make anything but a trivial example in one big hunk of swf bytecode.</p>
<p>The samples application has a pretty neat way of doing something similar.</p>
<p>all loose mxml files that are pulled together at the last moment.</p>
<p>As far as your thoughts about encapsulation and chain of command, you might want to check out the lightweight microarchitecture for Flex called Cairngorm. it uses the frontcontroller/command patterns to solve changes between the main application states. Although you define this as &#8220;overkill&#8221;, it really is not for maintainable pages.</p>
<p>If you ask: why do I need patterns/architecture for something as trivial as a &#8220;go to page&#8221;: that is because of your conceptual starting point: a series of pages instead of a combination of screen elements that can interact.</p>
<p>The right way to solve the encapsulation is having your button broadcast a specific event, and the application listening for this specific event. That way the application doesn&#8217;t have to know about the existence of the button, the event can also originate from a menu, a keyboard shortcut etc. etc. Take a look at event dispatching and publish subscribe posibilities in Flex.</p>
<p>cheers,</p>
<p>ilya</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sho</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-20</link>
		<dc:creator>Sho</dc:creator>
		<pubDate>Tue, 26 Apr 2005 00:31:14 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-20</guid>
		<description>Good points. And great work on the URL management code, BTW!

For me, the REST issue is not solely about encoding the state of the app in the URL. It&#039;s a philosophy of how to put web apps together: the site is broken up into pieces, and the state information is passed back and forth.

Whether you like it or not, REST *is* important because the rest of the web (ha ha) depends on it. URLs are central to how search engines, bookmarks, the refresh button, deep linking, etc., etc. work.

As to Paul&#039;s point.. passing in a ViewStack seems like it would be a good medium-weight solution. But I still miss the simplicity of . I mean.. I can get my head around components because I&#039;ve done lots of Windows and Mac programming. But there is a simplicity to the Web that I hope we aren&#039;t overlooking....</description>
		<content:encoded><![CDATA[<p>Good points. And great work on the URL management code, BTW!</p>
<p>For me, the REST issue is not solely about encoding the state of the app in the URL. It&#8217;s a philosophy of how to put web apps together: the site is broken up into pieces, and the state information is passed back and forth.</p>
<p>Whether you like it or not, REST *is* important because the rest of the web (ha ha) depends on it. URLs are central to how search engines, bookmarks, the refresh button, deep linking, etc., etc. work.</p>
<p>As to Paul&#8217;s point.. passing in a ViewStack seems like it would be a good medium-weight solution. But I still miss the simplicity of . I mean.. I can get my head around components because I&#8217;ve done lots of Windows and Mac programming. But there is a simplicity to the Web that I hope we aren&#8217;t overlooking&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manish Jethani</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-19</link>
		<dc:creator>Manish Jethani</dc:creator>
		<pubDate>Mon, 25 Apr 2005 22:10:20 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-19</guid>
		<description>Nice post, Sho.

We can do REST in Flex with the help of history management, but it&#039;s not clean, and I don&#039;t like to think of Flex applications like that.

&lt;a href=&quot;http://www.klynch.com/archives/000076.html&quot; rel=&quot;nofollow&quot;&gt;http://www.klynch.com/archives/000076.html&lt;/a&gt;
&lt;a href=&quot;http://www.livejournal.com/~mannu/263246.html&quot; rel=&quot;nofollow&quot;&gt;http://www.livejournal.com/~mannu/263246.html&lt;/a&gt;

There&#039;s the page-based paradigm of web applications, and there&#039;s the window-based paradigm of desktop applications.  I believe RIAs are somewhere in the middle, and as a result people coming from both camps are likely to be confused while doing their first apps (you&#039;re not alone).  It can take a little getting used to, and that worries me sometimes.  We need more &quot;getting started&quot; type training material, but also some examples of how to migrate traditional web applications to the Flex way.

&gt;How does the application know that the welcome panel has a button named &quot;newAccountButton&quot;?

It shouldn&#039;t.  WelcomePanel should just broadcast its own event -- let&#039;s call it &quot;newAccount&quot; -- and handleEvent should care about that.  The &quot;newAccount&quot; event would be a part of the public API for the WelcomePanel component.  How the &quot;newAccount&quot; event got triggered -- whether it was because of a mouse click or a network event or whatever -- is what&#039;s encapsulated.</description>
		<content:encoded><![CDATA[<p>Nice post, Sho.</p>
<p>We can do REST in Flex with the help of history management, but it&#8217;s not clean, and I don&#8217;t like to think of Flex applications like that.</p>
<p><a href="http://www.klynch.com/archives/000076.html" rel="nofollow">http://www.klynch.com/archives/000076.html</a><br />
<a href="http://www.livejournal.com/~mannu/263246.html" rel="nofollow">http://www.livejournal.com/~mannu/263246.html</a></p>
<p>There&#8217;s the page-based paradigm of web applications, and there&#8217;s the window-based paradigm of desktop applications.  I believe RIAs are somewhere in the middle, and as a result people coming from both camps are likely to be confused while doing their first apps (you&#8217;re not alone).  It can take a little getting used to, and that worries me sometimes.  We need more &#8220;getting started&#8221; type training material, but also some examples of how to migrate traditional web applications to the Flex way.</p>
<p>&gt;How does the application know that the welcome panel has a button named &#8220;newAccountButton&#8221;?</p>
<p>It shouldn&#8217;t.  WelcomePanel should just broadcast its own event &#8212; let&#8217;s call it &#8220;newAccount&#8221; &#8212; and handleEvent should care about that.  The &#8220;newAccount&#8221; event would be a part of the public API for the WelcomePanel component.  How the &#8220;newAccount&#8221; event got triggered &#8212; whether it was because of a mouse click or a network event or whatever &#8212; is what&#8217;s encapsulated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-18</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Mon, 25 Apr 2005 21:33:16 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-18</guid>
		<description>You might try passing a reference to the ViewStack into the component:

  

and then the welcomePanel can act on the ViewStack locally.  This way the component doesn&#039;t have to know anything about the structure of the application and the application doesn&#039;t have to that there is a Button inside the component which triggers the jump to the next state.  Does this meet your encapsulation goals without being overkill?</description>
		<content:encoded><![CDATA[<p>You might try passing a reference to the ViewStack into the component:</p>
<p>and then the welcomePanel can act on the ViewStack locally.  This way the component doesn&#8217;t have to know anything about the structure of the application and the application doesn&#8217;t have to that there is a Button inside the component which triggers the jump to the next state.  Does this meet your encapsulation goals without being overkill?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: saari</title>
		<link>http://kuwamoto.org/2005/04/25/are-components-really-a-good-substitute-for-pages/comment-page-1/#comment-17</link>
		<dc:creator>saari</dc:creator>
		<pubDate>Mon, 25 Apr 2005 18:09:29 +0000</pubDate>
		<guid isPermaLink="false">http://kuwamoto.org/?p=12#comment-17</guid>
		<description>Not surprisingly I&#039;m in the REST camp, not so much because of programmer-side encapsulation issues, but because there a lot of tools out there that have been built with the REST nature of the web as an assumption.</description>
		<content:encoded><![CDATA[<p>Not surprisingly I&#8217;m in the REST camp, not so much because of programmer-side encapsulation issues, but because there a lot of tools out there that have been built with the REST nature of the web as an assumption.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

