<?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: Design Patterns are in Purgatory</title>
	<atom:link href="http://www.fugutalk.com/?feed=rss2&#038;p=337" rel="self" type="application/rss+xml" />
	<link>http://www.fugutalk.com/?p=337</link>
	<description>a repository of unfinished thoughts</description>
	<lastBuildDate>Thu, 28 Aug 2008 03:11:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Leo</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-111</link>
		<dc:creator>Leo</dc:creator>
		<pubDate>Sat, 02 Aug 2008 12:05:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-111</guid>
		<description>&quot;In my experience, you never see Lisp programmers hanging around talking about design patterns - they’re usually talking about something much more interesting.&quot; 

And most of us never see Lisp programmers hanging around. There [1] is a nice response to this post. And I totally agree with that.

[1] http://kawagner.blogspot.com/</description>
		<content:encoded><![CDATA[<p>&#8220;In my experience, you never see Lisp programmers hanging around talking about design patterns &#8211; they’re usually talking about something much more interesting.&#8221; </p>
<p>And most of us never see Lisp programmers hanging around. There [1] is a nice response to this post. And I totally agree with that.</p>
<p>[1] <a href="http://kawagner.blogspot.com/" rel="nofollow">http://kawagner.blogspot.com/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Ritchford</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-110</link>
		<dc:creator>Tom Ritchford</dc:creator>
		<pubDate>Fri, 01 Aug 2008 13:57:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-110</guid>
		<description>&quot;I first heard about design patterns when a new hire in my group asked me if he could expense the design patterns book, which had been taught in his college. Since I’d never heard about it, I said no[...]&quot;

Wait, you turned down someone&#039;s request to buy a technical book??  And I&#039;m supposed to take the rest of this article seriously?  Not that I love the book but it seems very much penny wise, pound foolish to refuse book requests...</description>
		<content:encoded><![CDATA[<p>&#8220;I first heard about design patterns when a new hire in my group asked me if he could expense the design patterns book, which had been taught in his college. Since I’d never heard about it, I said no[...]&#8221;</p>
<p>Wait, you turned down someone&#8217;s request to buy a technical book??  And I&#8217;m supposed to take the rest of this article seriously?  Not that I love the book but it seems very much penny wise, pound foolish to refuse book requests&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-109</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Fri, 01 Aug 2008 13:49:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-109</guid>
		<description>Apologies in advance if this comes across as rude, but I felt I needed to give you some heat for this: a new hire asked you to buy a $50 tech book for him so he could improve his skills and you said &quot;no&quot;?! Ouch. If that&#039;s typical of your work culture,  it must suck to be a motivated self-improver in your company.</description>
		<content:encoded><![CDATA[<p>Apologies in advance if this comes across as rude, but I felt I needed to give you some heat for this: a new hire asked you to buy a $50 tech book for him so he could improve his skills and you said &#8220;no&#8221;?! Ouch. If that&#8217;s typical of your work culture,  it must suck to be a motivated self-improver in your company.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fadzlan</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-108</link>
		<dc:creator>Fadzlan</dc:creator>
		<pubDate>Fri, 01 Aug 2008 13:23:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-108</guid>
		<description>I agree with you that these things come up at awkward places, but you got to give it credits.

If there are other things twice as useful, you&#039;d probably hear them in awkward places too.  People just like to look as if they know something, which is even easier if there are names attached to it.</description>
		<content:encoded><![CDATA[<p>I agree with you that these things come up at awkward places, but you got to give it credits.</p>
<p>If there are other things twice as useful, you&#8217;d probably hear them in awkward places too.  People just like to look as if they know something, which is even easier if there are names attached to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Keeble</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-107</link>
		<dc:creator>Paul Keeble</dc:creator>
		<pubDate>Fri, 01 Aug 2008 12:14:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-107</guid>
		<description>In functional languages patterns are less necessary (if at all) because they aren&#039;t limited in the way that C/Java like languages are. It is that limitation of aspect like programming and the importance placed on the objects and their structure which makes &quot;normal&quot; programming languages structure.

There are however still patterns of behaviour in functional programming, just no one has written enough about them yet to recognise the patterns. Todays patterns are tomorrows programming features and I think the reason Java&#039;s patterns are so obvious is because of the more advanced languages like LISP.</description>
		<content:encoded><![CDATA[<p>In functional languages patterns are less necessary (if at all) because they aren&#8217;t limited in the way that C/Java like languages are. It is that limitation of aspect like programming and the importance placed on the objects and their structure which makes &#8220;normal&#8221; programming languages structure.</p>
<p>There are however still patterns of behaviour in functional programming, just no one has written enough about them yet to recognise the patterns. Todays patterns are tomorrows programming features and I think the reason Java&#8217;s patterns are so obvious is because of the more advanced languages like LISP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: troelskn</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-106</link>
		<dc:creator>troelskn</dc:creator>
		<pubDate>Fri, 01 Aug 2008 11:02:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-106</guid>
		<description>&lt;blockquote&gt;
A VP of Engineering vigorously trying to convince I should have used the Flyweight pattern in one of my programs. It turns out I was using the flyweight pattern - I just didn’t know it was now a pattern and had that name, and even though I explained how my program worked, since I didn’t say &quot;flyweight&quot; he felt I was missing the boat.
&lt;/blockquote&gt;

In a way you did in fact miss the boat. Patterns have two qualities. The immediate is as a blue-print for solving a specific class of problems. This is the aspect that most people (Especially programmers with lesser experience) focus on, because it makes the pattern a tool that they can use in their work. Used this way, the theory is, you may have a problem and you can then find a pattern that is designed to solve this problem and if you apply it, you have done good. This kind of thinking isn&#039;t overly relevant for someone with much experience as a programmer; Indeed it may become more of a hindrance than a help.

The other quality of patterns is to form a common language to describe certain things that we, as programmers, do. I say &quot;I&#039;m using an abstract factory to decouple these two classes&quot;, and you know what I mean. Such words make it easier for us to communicate with each other, so that we can discuss the really interesting stuff (Which is not the details of the &quot;abstract factory&quot; pattern).

Of course I can&#039;t know the details of the situation you described above, but if you had known the concept of fly-weight pattern, you could have easier communicated your intend to him, instead of having to explain in detail how you program worked.</description>
		<content:encoded><![CDATA[<blockquote><p>
A VP of Engineering vigorously trying to convince I should have used the Flyweight pattern in one of my programs. It turns out I was using the flyweight pattern &#8211; I just didn’t know it was now a pattern and had that name, and even though I explained how my program worked, since I didn’t say &#8220;flyweight&#8221; he felt I was missing the boat.
</p></blockquote>
<p>In a way you did in fact miss the boat. Patterns have two qualities. The immediate is as a blue-print for solving a specific class of problems. This is the aspect that most people (Especially programmers with lesser experience) focus on, because it makes the pattern a tool that they can use in their work. Used this way, the theory is, you may have a problem and you can then find a pattern that is designed to solve this problem and if you apply it, you have done good. This kind of thinking isn&#8217;t overly relevant for someone with much experience as a programmer; Indeed it may become more of a hindrance than a help.</p>
<p>The other quality of patterns is to form a common language to describe certain things that we, as programmers, do. I say &#8220;I&#8217;m using an abstract factory to decouple these two classes&#8221;, and you know what I mean. Such words make it easier for us to communicate with each other, so that we can discuss the really interesting stuff (Which is not the details of the &#8220;abstract factory&#8221; pattern).</p>
<p>Of course I can&#8217;t know the details of the situation you described above, but if you had known the concept of fly-weight pattern, you could have easier communicated your intend to him, instead of having to explain in detail how you program worked.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim McClarren</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-105</link>
		<dc:creator>Tim McClarren</dc:creator>
		<pubDate>Fri, 01 Aug 2008 09:09:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-105</guid>
		<description>Thanks for this... it summarizes well what I&#039;ve felt about programming for nearly 15 years now.  I&#039;ve left Java-land for the pure and clean land of C (alright, C++, but that&#039;s not pure or clean) again a few years back.  I had even worked on a Java IDE.  I had also been interviewed by Ralph Johnson, albeit very briefly, back in 1990 before the Gang of Four book went into print (I was very young at the time, and a colleague said that after Dr. Johnson left, I said it was like &quot;two ships passing in the night&quot;... I had no understanding of his theoretical framework, and in fact, I don&#039;t even recall whether he tried to help me understand it... he purported to just be asking software professionals about their experience in the field, and at the time I was a fairly prolific USENET poster on the Objective-C newgroups, and I&#039;m guessing that&#039;s where he found me).  I think there is some value for a taxonomy of software design, but, frankly, way too much is made of design patterns.   Good programmers understand those idioms in several languages, taxonomy or not.

Sadly, I think that Java programmers (I mean programmers who exclusively program in Java) pay far more attention to this stuff than do other programmers.  I&#039;m not knocking Java, it&#039;s fine.  The problem is that it&#039;s used exclusively in some places, and it doesn&#039;t allow for people to understand how other paradigms, other languages, and the hardware itself actually function (and no, understanding the VM and understanding how the VM interacts with the CPU pipeline, the branch predictor, the instruction and data cache, etc., is entirely different... ).</description>
		<content:encoded><![CDATA[<p>Thanks for this&#8230; it summarizes well what I&#8217;ve felt about programming for nearly 15 years now.  I&#8217;ve left Java-land for the pure and clean land of C (alright, C++, but that&#8217;s not pure or clean) again a few years back.  I had even worked on a Java IDE.  I had also been interviewed by Ralph Johnson, albeit very briefly, back in 1990 before the Gang of Four book went into print (I was very young at the time, and a colleague said that after Dr. Johnson left, I said it was like &#8220;two ships passing in the night&#8221;&#8230; I had no understanding of his theoretical framework, and in fact, I don&#8217;t even recall whether he tried to help me understand it&#8230; he purported to just be asking software professionals about their experience in the field, and at the time I was a fairly prolific USENET poster on the Objective-C newgroups, and I&#8217;m guessing that&#8217;s where he found me).  I think there is some value for a taxonomy of software design, but, frankly, way too much is made of design patterns.   Good programmers understand those idioms in several languages, taxonomy or not.</p>
<p>Sadly, I think that Java programmers (I mean programmers who exclusively program in Java) pay far more attention to this stuff than do other programmers.  I&#8217;m not knocking Java, it&#8217;s fine.  The problem is that it&#8217;s used exclusively in some places, and it doesn&#8217;t allow for people to understand how other paradigms, other languages, and the hardware itself actually function (and no, understanding the VM and understanding how the VM interacts with the CPU pipeline, the branch predictor, the instruction and data cache, etc., is entirely different&#8230; ).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SomeGuy</title>
		<link>http://www.fugutalk.com/?p=337&#038;cpage=1#comment-104</link>
		<dc:creator>SomeGuy</dc:creator>
		<pubDate>Fri, 01 Aug 2008 08:20:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.fugutalk.com/?p=337#comment-104</guid>
		<description>Kids today and their fancy language ...

I think you have hit on the single biggest problem with design patterns: people act as if it was something brand new that was introduced into the programming world and that it revolutionized it. In reality they just gave a name to something that had existed before. 

They have revolutionized communication though. Having a conversation with someone and saying &quot;apply the visitor pattern&quot; instead of &quot;traverse through the nodes of a tree and &quot; etc. etc. does have some merit.</description>
		<content:encoded><![CDATA[<p>Kids today and their fancy language &#8230;</p>
<p>I think you have hit on the single biggest problem with design patterns: people act as if it was something brand new that was introduced into the programming world and that it revolutionized it. In reality they just gave a name to something that had existed before. </p>
<p>They have revolutionized communication though. Having a conversation with someone and saying &#8220;apply the visitor pattern&#8221; instead of &#8220;traverse through the nodes of a tree and &#8221; etc. etc. does have some merit.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
