<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: No Time for OOP and Design Patterns</title>
	<atom:link href="http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/</link>
	<description>OOP Techniques for Flash and Flex Developers</description>
	<lastBuildDate>Mon, 15 Mar 2010 20:29:46 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: William B. Sanders</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-2316</link>
		<dc:creator>William B. Sanders</dc:creator>
		<pubDate>Fri, 08 May 2009 19:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-2316</guid>
		<description>Hi Thomas,

The workplace is a funny thing. Design patterns were created originally for the workplace, but we find that in some workplaces that no one has time for DP. I think that your institution is exactly right in helping you develop practices that focus on reusable code, whether they call them design patterns or not. Likewise, creating a library of solutions means that you&#039;re going to work with a set of practical tools for getting things done that can be reused.

In working through the different principles in the &lt;strong&gt;Lunch Bucket Rules&lt;/strong&gt; series, I&#039;ve come more and more to see them as design pattern templates. My hope is that by thinking about programming through the lens of programming principles, ActionScript 3.0 programmers will eventually use them as a way to get something done quickly. The next time the same issue comes up, the reusable code is sitting there awaiting them.

Even throwing together a hack for a quick solution, one can find eventually that hacks keep getting better and better until one day they are no longer hacks!

Cheers,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Thomas,</p>
<p>The workplace is a funny thing. Design patterns were created originally for the workplace, but we find that in some workplaces that no one has time for DP. I think that your institution is exactly right in helping you develop practices that focus on reusable code, whether they call them design patterns or not. Likewise, creating a library of solutions means that you&#8217;re going to work with a set of practical tools for getting things done that can be reused.</p>
<p>In working through the different principles in the <strong>Lunch Bucket Rules</strong> series, I&#8217;ve come more and more to see them as design pattern templates. My hope is that by thinking about programming through the lens of programming principles, ActionScript 3.0 programmers will eventually use them as a way to get something done quickly. The next time the same issue comes up, the reusable code is sitting there awaiting them.</p>
<p>Even throwing together a hack for a quick solution, one can find eventually that hacks keep getting better and better until one day they are no longer hacks!</p>
<p>Cheers,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Vervest</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-2314</link>
		<dc:creator>Thomas Vervest</dc:creator>
		<pubDate>Fri, 08 May 2009 14:42:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-2314</guid>
		<description>As a &#039;new generation&#039; programmer (I&#039;m currently in my last year of CS) I really notice the difference between the &quot;old skool&quot; programmers and the new generation of OOP and Design Pattern based programmers. During my education we actually get lessons in design patterns, however we don&#039;t learn specific design patterns, but we are encouraged to solve problems in creative, reusable ways. In some projects the actual target of the project was to force us to adapt to rapid change (but of course only the teachers knew that, we just had to do a big project and the teachers kept on changing things along the way), making the use of good OOP and DP an important part of the design.
During my 4 year study I&#039;ve gathered quite a library of classes (most of them DPs) making my life as a programmer a lot easier! Good going for my school, I guess, but I agree to the discussion that in real life the &quot;get it done yesterday&quot; part more often than not wins from doing things right.

Great blog btw! Keep up the good work :)</description>
		<content:encoded><![CDATA[<p>As a &#8216;new generation&#8217; programmer (I&#8217;m currently in my last year of CS) I really notice the difference between the &#8220;old skool&#8221; programmers and the new generation of OOP and Design Pattern based programmers. During my education we actually get lessons in design patterns, however we don&#8217;t learn specific design patterns, but we are encouraged to solve problems in creative, reusable ways. In some projects the actual target of the project was to force us to adapt to rapid change (but of course only the teachers knew that, we just had to do a big project and the teachers kept on changing things along the way), making the use of good OOP and DP an important part of the design.<br />
During my 4 year study I&#8217;ve gathered quite a library of classes (most of them DPs) making my life as a programmer a lot easier! Good going for my school, I guess, but I agree to the discussion that in real life the &#8220;get it done yesterday&#8221; part more often than not wins from doing things right.</p>
<p>Great blog btw! Keep up the good work :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William B. Sanders</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-2311</link>
		<dc:creator>William B. Sanders</dc:creator>
		<pubDate>Thu, 07 May 2009 20:57:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-2311</guid>
		<description>Hi Matthew,

While I don&#039;t think there were too many political considerations behind OOP and design patterns, I do believe that there were economic ones. A lot of people were trying to figure out what practices worked best for good OOP, and they developed many of those we&#039;ve discussed on this blog in the &quot;Lunch Bucket Rules&quot; series.

Erich Gamma was working on his doctorate in Switzerland and took as his topic a set of patterns that would adhere to good OOP and solve a lot of common problems that programmers encountered. If you look at the OOPSLA meetings up to and after the publication of Design Patterns by the Gang of Four, you will see a good deal of discussions about re-usable and easy-to-update and change programming code. The idea was that if certain practices were followed that changing and updating code would be made easier. This would save money wasted either in re-writing hacks or starting from scratch with each new project. At the same time, the solutions they came up with were quite elegant in the reasoning behind them.

As far as relaxing &quot;while machines do the work,&quot; you&#039;ve got to remember that we&#039;re the ones who tell the machines what to do! Programming will also be a mix of invention and creation mixed in with drudgery; just like most other jobs. However, as an &quot;art form&quot; it can be quite rewarding--as you seem to be saying.

Take care,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Matthew,</p>
<p>While I don&#8217;t think there were too many political considerations behind OOP and design patterns, I do believe that there were economic ones. A lot of people were trying to figure out what practices worked best for good OOP, and they developed many of those we&#8217;ve discussed on this blog in the &#8220;Lunch Bucket Rules&#8221; series.</p>
<p>Erich Gamma was working on his doctorate in Switzerland and took as his topic a set of patterns that would adhere to good OOP and solve a lot of common problems that programmers encountered. If you look at the OOPSLA meetings up to and after the publication of Design Patterns by the Gang of Four, you will see a good deal of discussions about re-usable and easy-to-update and change programming code. The idea was that if certain practices were followed that changing and updating code would be made easier. This would save money wasted either in re-writing hacks or starting from scratch with each new project. At the same time, the solutions they came up with were quite elegant in the reasoning behind them.</p>
<p>As far as relaxing &#8220;while machines do the work,&#8221; you&#8217;ve got to remember that we&#8217;re the ones who tell the machines what to do! Programming will also be a mix of invention and creation mixed in with drudgery; just like most other jobs. However, as an &#8220;art form&#8221; it can be quite rewarding&#8211;as you seem to be saying.</p>
<p>Take care,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-2308</link>
		<dc:creator>Matthew</dc:creator>
		<pubDate>Thu, 07 May 2009 17:45:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-2308</guid>
		<description>Money is not that important.  We have so much technology that we should all be relaxing while machines do the work for us.  The need to be stressed out and continually produce more and more is a lie perpetrated by greedy capitalists who believe in slavery to their systems of authority.

What is the point of life without art and beauty?  What is the point of life if all you produce is one ugly design after another just to keep waking up in the morning, feeding your belly, and dumping it out the next day?  There is no point in that.</description>
		<content:encoded><![CDATA[<p>Money is not that important.  We have so much technology that we should all be relaxing while machines do the work for us.  The need to be stressed out and continually produce more and more is a lie perpetrated by greedy capitalists who believe in slavery to their systems of authority.</p>
<p>What is the point of life without art and beauty?  What is the point of life if all you produce is one ugly design after another just to keep waking up in the morning, feeding your belly, and dumping it out the next day?  There is no point in that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Agency projects&#8230; a time for patterns or not!? &#171; The Combined Corner</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-1029</link>
		<dc:creator>Agency projects&#8230; a time for patterns or not!? &#171; The Combined Corner</dc:creator>
		<pubDate>Mon, 29 Dec 2008 00:57:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-1029</guid>
		<description>[...] All this and a couple of other points have been described quite well by Bill Sanders in his Blog about ActionScript 3 Patterns…http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/ [...]</description>
		<content:encoded><![CDATA[<p>[...] All this and a couple of other points have been described quite well by Bill Sanders in his Blog about ActionScript 3 Patterns…http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/ [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Sanders</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-994</link>
		<dc:creator>Bill Sanders</dc:creator>
		<pubDate>Thu, 18 Dec 2008 23:22:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-994</guid>
		<description>Hi Dale,

Coming from Java, ActionScript 3.0 imposes certain restrictions (or workarounds, or whatever). This is especially true if you know Java quite well but you&#039;re just getting used to ActionScript. The more you become familiar with ActionScript, I would imagine you&#039;ll find both more restrictions and some nice Easter eggs as well.

Your blog on moving into ActionScript from Java is great, and I plan to read more of it carefully.

Kindest regards,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Dale,</p>
<p>Coming from Java, ActionScript 3.0 imposes certain restrictions (or workarounds, or whatever). This is especially true if you know Java quite well but you&#8217;re just getting used to ActionScript. The more you become familiar with ActionScript, I would imagine you&#8217;ll find both more restrictions and some nice Easter eggs as well.</p>
<p>Your blog on moving into ActionScript from Java is great, and I plan to read more of it carefully.</p>
<p>Kindest regards,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Sanders</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-993</link>
		<dc:creator>Bill Sanders</dc:creator>
		<pubDate>Thu, 18 Dec 2008 23:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-993</guid>
		<description>Hi Nir,

I really like your idea..


&lt;blockquote&gt;... if they’re good enough, coding with design patterns is subconscious, they don’t have to think about using &lt;del datetime=&quot;2008-12-18T23:14:37+00:00&quot;&gt;singletons&lt;/del&gt;, delegates, mvcs, or any other design pattern....&lt;/blockquote&gt;

While you may not be able to spend time in the middle of a busy deadline to sharpen your OOP and design pattern skills, at some point they become a natural part of doing coding. Poor coding is the same; if you do it long enough, it becomes part of you. I&#039;d rather try and improve all the time!

Kindest regards,
Bill
</description>
		<content:encoded><![CDATA[<p>Hi Nir,</p>
<p>I really like your idea..</p>
<blockquote><p>&#8230; if they’re good enough, coding with design patterns is subconscious, they don’t have to think about using <del datetime="2008-12-18T23:14:37+00:00">singletons</del>, delegates, mvcs, or any other design pattern&#8230;.</p></blockquote>
<p>While you may not be able to spend time in the middle of a busy deadline to sharpen your OOP and design pattern skills, at some point they become a natural part of doing coding. Poor coding is the same; if you do it long enough, it becomes part of you. I&#8217;d rather try and improve all the time!</p>
<p>Kindest regards,<br />
Bill</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Beermann</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-992</link>
		<dc:creator>Dale Beermann</dc:creator>
		<pubDate>Thu, 18 Dec 2008 18:25:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-992</guid>
		<description>We recently ported a large Java project to Flash and I&#039;ve thought a lot about how ActionScript has imposed some issues with our original design.  I wrote up a series of posts about the port and the issues we came across, the first of which can be found here: http://blog.sharendipity.com/were-moving-to-flash-heres-why.  Subsequent posts describe in depth the problems we came across.

What I&#039;m interested in is a related question: When does the user experience require that you deviate from your design principles?  Ultimately, the user experience is what we really care about.  The underlying design would ideally facilitate a better user experience, but I don&#039;t think that&#039;s always possible.

I don&#039;t necessarily think that we&#039;ve sacrificed our core design along the way but we certainly had to spend a lot of time fixing things that were a lot easier in Java.  Examples are our original use of the adapter pattern which was based on the Proxy class in ActionScript (now changed to inner classes using namespaces), implementing pseudo-threading for hierarchical tasks, scoping of anonymous functions, and several problems that arose because of the lack of abstract classes and other language differences.  

Psuedo-threading is an example of where I would have liked to avoid injecting dependencies for a pseudo-threading manager throughout a lot of our core code.  Here, I had to break some of our encapsulation in order to achieve a desired result.  In that respect, it&#039;s really a combination of the need for a fluid user experience combined with a language that doesn&#039;t support certain operations that required changing our design.  I&#039;m curious if anyone else has come across an issue such as this where the user experience drove a result that wasn&#039;t desirable from a design perspective.</description>
		<content:encoded><![CDATA[<p>We recently ported a large Java project to Flash and I&#8217;ve thought a lot about how ActionScript has imposed some issues with our original design.  I wrote up a series of posts about the port and the issues we came across, the first of which can be found here: <a href="http://blog.sharendipity.com/were-moving-to-flash-heres-why" rel="nofollow">http://blog.sharendipity.com/were-moving-to-flash-heres-why</a>.  Subsequent posts describe in depth the problems we came across.</p>
<p>What I&#8217;m interested in is a related question: When does the user experience require that you deviate from your design principles?  Ultimately, the user experience is what we really care about.  The underlying design would ideally facilitate a better user experience, but I don&#8217;t think that&#8217;s always possible.</p>
<p>I don&#8217;t necessarily think that we&#8217;ve sacrificed our core design along the way but we certainly had to spend a lot of time fixing things that were a lot easier in Java.  Examples are our original use of the adapter pattern which was based on the Proxy class in ActionScript (now changed to inner classes using namespaces), implementing pseudo-threading for hierarchical tasks, scoping of anonymous functions, and several problems that arose because of the lack of abstract classes and other language differences.  </p>
<p>Psuedo-threading is an example of where I would have liked to avoid injecting dependencies for a pseudo-threading manager throughout a lot of our core code.  Here, I had to break some of our encapsulation in order to achieve a desired result.  In that respect, it&#8217;s really a combination of the need for a fluid user experience combined with a language that doesn&#8217;t support certain operations that required changing our design.  I&#8217;m curious if anyone else has come across an issue such as this where the user experience drove a result that wasn&#8217;t desirable from a design perspective.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nir Hodara</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-991</link>
		<dc:creator>Nir Hodara</dc:creator>
		<pubDate>Thu, 18 Dec 2008 17:05:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-991</guid>
		<description>In my opinion, if time permits, the goal is to be as purist as possible. That&#039;s why I prefer to work with those that have OOP and design pattern skills, because if they&#039;re good enough, coding with design patterns is subconscious, they don&#039;t have to think about using singletons, delegates, mvcs, or any other design pattern. It&#039;s automatic for them and they code just as fast. It&#039;s the developer that&#039;s unaware of these terms that&#039;s going to be the most inefficient and a risk to the success of the project.

Planning always helps, but if the project is a low budget, short deadline, never going to get changed, with a short 6 months to a year lifespan, then the client probably has a &quot;get it done&quot; over &quot;oop &amp; design perfection&quot; state of mind. I always give the client options of what workflow they want to take, so (s)he is aware of the consequences, and can rethink the budget, scope and deadline. Sometimes the &quot;get it done quick&quot; is a better option, it depends on the variables.

Like a doctor, you can always advise your patients of the better choice and the risks of taking the bad choice, but at the end of the day it&#039;s up to them, as long as they are aware of what they&#039;re getting in to. If it&#039;s something that you know is going to fail then it&#039;s best not to take the project. For me, producing something of great quality is better and more rewarding than making money off a failed concept.</description>
		<content:encoded><![CDATA[<p>In my opinion, if time permits, the goal is to be as purist as possible. That&#8217;s why I prefer to work with those that have OOP and design pattern skills, because if they&#8217;re good enough, coding with design patterns is subconscious, they don&#8217;t have to think about using singletons, delegates, mvcs, or any other design pattern. It&#8217;s automatic for them and they code just as fast. It&#8217;s the developer that&#8217;s unaware of these terms that&#8217;s going to be the most inefficient and a risk to the success of the project.</p>
<p>Planning always helps, but if the project is a low budget, short deadline, never going to get changed, with a short 6 months to a year lifespan, then the client probably has a &#8220;get it done&#8221; over &#8220;oop &amp; design perfection&#8221; state of mind. I always give the client options of what workflow they want to take, so (s)he is aware of the consequences, and can rethink the budget, scope and deadline. Sometimes the &#8220;get it done quick&#8221; is a better option, it depends on the variables.</p>
<p>Like a doctor, you can always advise your patients of the better choice and the risks of taking the bad choice, but at the end of the day it&#8217;s up to them, as long as they are aware of what they&#8217;re getting in to. If it&#8217;s something that you know is going to fail then it&#8217;s best not to take the project. For me, producing something of great quality is better and more rewarding than making money off a failed concept.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Sanders</title>
		<link>http://www.as3dp.com/2008/12/07/no-time-for-oop-and-design-patterns/comment-page-1/#comment-984</link>
		<dc:creator>Bill Sanders</dc:creator>
		<pubDate>Mon, 15 Dec 2008 02:39:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.as3dp.com/?p=337#comment-984</guid>
		<description>Hi Matt,

I am very glad you brought up the point that a lot of web development for media companies is long-term. The fact of the matter is that those who should be aware of it have neither the background to understand it nor the motivation to plan for long range development. It&#039;s almost random when a good structure is introduced into company programming model that helps the company to achieve a competitive edge.

Good to hear from a fellow UCSB alum,
Bill</description>
		<content:encoded><![CDATA[<p>Hi Matt,</p>
<p>I am very glad you brought up the point that a lot of web development for media companies is long-term. The fact of the matter is that those who should be aware of it have neither the background to understand it nor the motivation to plan for long range development. It&#8217;s almost random when a good structure is introduced into company programming model that helps the company to achieve a competitive edge.</p>
<p>Good to hear from a fellow UCSB alum,<br />
Bill</p>
]]></content:encoded>
	</item>
</channel>
</rss>
