<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Polyglotism is the worst idea I ever heard</title>
	<atom:link href="http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/feed/" rel="self" type="application/rss+xml" />
	<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/</link>
	<description>Software plumbing using middleware wrenches</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:51:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: zoldello</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3642</link>
		<dc:creator><![CDATA[zoldello]]></dc:creator>
		<pubDate>Wed, 09 Jun 2010 17:06:48 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3642</guid>
		<description><![CDATA[It is great to be passionate about programming. However, Software Engineers are not paid to program; no they are paid to solve problems. Programming is just a tool to this end. This ia akin to a carpenter not being paid to hit nails but to make a chair to solve seating problems (with hitting nails just being a tool to this end but not the actual end). Not mastering a tool but spreading yourself too thin can (although not neccessarily) reduce your abilty to quickly solve problems with what you know. It is ok to hire consultant or expand the team rather than pull your too thin.]]></description>
		<content:encoded><![CDATA[<p>It is great to be passionate about programming. However, Software Engineers are not paid to program; no they are paid to solve problems. Programming is just a tool to this end. This ia akin to a carpenter not being paid to hit nails but to make a chair to solve seating problems (with hitting nails just being a tool to this end but not the actual end). Not mastering a tool but spreading yourself too thin can (although not neccessarily) reduce your abilty to quickly solve problems with what you know. It is ok to hire consultant or expand the team rather than pull your too thin.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zoldello</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3641</link>
		<dc:creator><![CDATA[zoldello]]></dc:creator>
		<pubDate>Wed, 09 Jun 2010 17:02:37 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3641</guid>
		<description><![CDATA[Here is a replication (with modifications) of a post I posted somewhere else:

I agree with you post. Here are three issues I have with Software Engineers that are okay with many languages but have not mastered one:

1. The learn-a-new-langauges-annually thing is so 1980’s. You could pick up a book like one by Peter Norton and know everything you need to know about computers then. Now, it takes years to get proficient (not good or great) at ASP.NET and C# (with its huge API). Plus, you got WPF, WF, EF 4 and many others. This is only in the .NET space. Now you have Ruby on Rail, Clojure etc- Rocky Lhotka full-time job is to keep current with just .NET and he cannot. Technology moves too fast and is too large to try everything and expect to know the quirks, bells and whistles to be competent.

2. C# has features from functional languages, dynamic languages OOP languages and more. This reduces the need to try to get a functional language feel from a pure functional language.

3. It takes dedication to become great at a tool/API, especially those with high learning curves (e.g. WPF.) Distracting yourself by trying to learn everything else can reduce you powess and mastery in a tool. If you are afraid of getting stuff knowing one thing that may be gone tommorrow, there will be tutorials. For example, Microsoft guided Software Engineers that moved from VB6 to VB.NET. You just will not be dead in the water. 

Now, languages designers may need to learn a new language annually. Plus, it does not hurt if you learn a new languages annually just because you like programming. However, nowadays I do not feel that it is that urgent as it was in previous decades. Plus, polyglot-languages like C# lets you dive into non-OOP features. It is better to solve a programming the long way and quickly with a tool you are great at and can easily support THEN to build it with a more suitable tool you do not know well, may take longer to build since you are learning along the way and will forces others to learn things way outside their knowledge-area to support.]]></description>
		<content:encoded><![CDATA[<p>Here is a replication (with modifications) of a post I posted somewhere else:</p>
<p>I agree with you post. Here are three issues I have with Software Engineers that are okay with many languages but have not mastered one:</p>
<p>1. The learn-a-new-langauges-annually thing is so 1980’s. You could pick up a book like one by Peter Norton and know everything you need to know about computers then. Now, it takes years to get proficient (not good or great) at ASP.NET and C# (with its huge API). Plus, you got WPF, WF, EF 4 and many others. This is only in the .NET space. Now you have Ruby on Rail, Clojure etc- Rocky Lhotka full-time job is to keep current with just .NET and he cannot. Technology moves too fast and is too large to try everything and expect to know the quirks, bells and whistles to be competent.</p>
<p>2. C# has features from functional languages, dynamic languages OOP languages and more. This reduces the need to try to get a functional language feel from a pure functional language.</p>
<p>3. It takes dedication to become great at a tool/API, especially those with high learning curves (e.g. WPF.) Distracting yourself by trying to learn everything else can reduce you powess and mastery in a tool. If you are afraid of getting stuff knowing one thing that may be gone tommorrow, there will be tutorials. For example, Microsoft guided Software Engineers that moved from VB6 to VB.NET. You just will not be dead in the water. </p>
<p>Now, languages designers may need to learn a new language annually. Plus, it does not hurt if you learn a new languages annually just because you like programming. However, nowadays I do not feel that it is that urgent as it was in previous decades. Plus, polyglot-languages like C# lets you dive into non-OOP features. It is better to solve a programming the long way and quickly with a tool you are great at and can easily support THEN to build it with a more suitable tool you do not know well, may take longer to build since you are learning along the way and will forces others to learn things way outside their knowledge-area to support.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3566</link>
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Tue, 20 Apr 2010 19:59:18 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3566</guid>
		<description><![CDATA[Bill ... you rock! ;)]]></description>
		<content:encoded><![CDATA[<p>Bill &#8230; you rock! <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delivering Business Value Through Polyglot Systems (part 4 / conclusion) &#124; Object Partners Inc</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3050</link>
		<dc:creator><![CDATA[Delivering Business Value Through Polyglot Systems (part 4 / conclusion) &#124; Object Partners Inc]]></dc:creator>
		<pubDate>Mon, 21 Sep 2009 14:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3050</guid>
		<description><![CDATA[[...] this post, I will discuss the &#8220;support nightmare&#8221; raised by Bill Burke in his blog post &#8220;Polyglot programming is the worst idea I ever heard&#8221;. As I illustrate below, adding moving parts of any kind can make support difficult. But this [...]]]></description>
		<content:encoded><![CDATA[<p>[...] this post, I will discuss the &#8220;support nightmare&#8221; raised by Bill Burke in his blog post &#8220;Polyglot programming is the worst idea I ever heard&#8221;. As I illustrate below, adding moving parts of any kind can make support difficult. But this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: billburke</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3029</link>
		<dc:creator><![CDATA[billburke]]></dc:creator>
		<pubDate>Thu, 17 Sep 2009 00:50:18 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3029</guid>
		<description><![CDATA[GWT FTW.]]></description>
		<content:encoded><![CDATA[<p>GWT FTW.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darrel Miller</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-3028</link>
		<dc:creator><![CDATA[Darrel Miller]]></dc:creator>
		<pubDate>Thu, 17 Sep 2009 00:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-3028</guid>
		<description><![CDATA[Yeah, whose stupid idea was it to have web applications that are written in a language like Java, Ruby, Python or C# then go and download Javascript to the client.  Why would people be so dumb as to mix languages like that.]]></description>
		<content:encoded><![CDATA[<p>Yeah, whose stupid idea was it to have web applications that are written in a language like Java, Ruby, Python or C# then go and download Javascript to the client.  Why would people be so dumb as to mix languages like that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Flowers</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-2988</link>
		<dc:creator><![CDATA[Jeremy Flowers]]></dc:creator>
		<pubDate>Wed, 09 Sep 2009 15:36:07 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-2988</guid>
		<description><![CDATA[Hi Bill. Having read your comment to Scott Hickey&#039;s blog, I&#039;m glad to see where you&#039;re coming from with your argument. And it seems you are in favour of Groovy as a language which quote &#039;you see as a superset of Java&#039;. But the Groovy language itself grew out of the polyglot mindset itself (Perl, Smalltalk etc), cherry-picking other languages best features. Have a read of &#039;Your way to Groovy&#039;, chapter 1 of Groovy in Action. It continues to this day in the Groovy community with the works of the likes of Vaclav Pech adding GParallelizer to Groovy, bringing Actors from Scala into Groovy. This is why I love Groovy so much. It&#039;s a vibrant community full of innovators. I share your opinions on the potential maintenance headaches though. I&#039;m not sure if Grails is going overboard with Scala and Clojure plug-ins. I&#039;d rather have a rich core language that evolves and absorbs the best features of other languages than have the complexities of say Java, Groovy, Scala and Clojure all in a Grails project. I think if I was going with Scala, I&#039;d be looking at Lift. Ditto Compojure if I went Clojure for a web framework.]]></description>
		<content:encoded><![CDATA[<p>Hi Bill. Having read your comment to Scott Hickey&#8217;s blog, I&#8217;m glad to see where you&#8217;re coming from with your argument. And it seems you are in favour of Groovy as a language which quote &#8216;you see as a superset of Java&#8217;. But the Groovy language itself grew out of the polyglot mindset itself (Perl, Smalltalk etc), cherry-picking other languages best features. Have a read of &#8216;Your way to Groovy&#8217;, chapter 1 of Groovy in Action. It continues to this day in the Groovy community with the works of the likes of Vaclav Pech adding GParallelizer to Groovy, bringing Actors from Scala into Groovy. This is why I love Groovy so much. It&#8217;s a vibrant community full of innovators. I share your opinions on the potential maintenance headaches though. I&#8217;m not sure if Grails is going overboard with Scala and Clojure plug-ins. I&#8217;d rather have a rich core language that evolves and absorbs the best features of other languages than have the complexities of say Java, Groovy, Scala and Clojure all in a Grails project. I think if I was going with Scala, I&#8217;d be looking at Lift. Ditto Compojure if I went Clojure for a web framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-2987</link>
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Wed, 09 Sep 2009 14:11:16 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-2987</guid>
		<description><![CDATA[What? I copied that from your EJB3 AOP crap!  Does your REST stuff have classloader leaks too?  :-D]]></description>
		<content:encoded><![CDATA[<p>What? I copied that from your EJB3 AOP crap!  Does your REST stuff have classloader leaks too?  <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: billburke</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-2986</link>
		<dc:creator><![CDATA[billburke]]></dc:creator>
		<pubDate>Wed, 09 Sep 2009 13:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-2986</guid>
		<description><![CDATA[Yes Andy, that does look like code you would write.]]></description>
		<content:encoded><![CDATA[<p>Yes Andy, that does look like code you would write.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://bill.burkecentral.com/2009/07/20/polyglotism-is-the-worst-idea-i-ever-heard/#comment-2985</link>
		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Wed, 09 Sep 2009 05:41:51 +0000</pubDate>
		<guid isPermaLink="false">http://bill.burkecentral.com/?p=240#comment-2985</guid>
		<description><![CDATA[But what if I write my test scripts in JRuby because I&#039;m too lazy to type all that 

try {
Locator loc = LocatorFactory.createLocator(&quot;locationOfXMLFileFromHellOrSomeClassloaderThing&quot;);
Factory f = loc.locate(&quot;factoryName&quot;);
Locator factoryLocator = f.createLocator(Constants.NEEDLESS_CONSTANT);
Factory f = (Factory) factoryLocator.locate(ServiceLocator.createInstance());
MyObjectFinally mof = f.createObject();
} catch (StupidGratuitousCheckedException e) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e);
} catch (SemiRedundantOneOffTypedStupidGratuitousCheckedException e2) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e2);
} catch (FactoryNotLocatedException e3) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e3);
} catch (LocatorNotAbleToBeInstantiatedException e4) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e4);
} catch (XMLException e5) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e5);
} catch (RandomParserMadnessException e6) {
 throw new RuntimeException(&quot;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&quot;,e6);
}

But if Java wasn&#039;t horrible like that then how would we fill the JCP committees :-)

I think Polyglotism is fine so long as it is strictly for the noble cause of laziness.  I go to great amounts of effort to be lazy!

-Andy]]></description>
		<content:encoded><![CDATA[<p>But what if I write my test scripts in JRuby because I&#8217;m too lazy to type all that </p>
<p>try {<br />
Locator loc = LocatorFactory.createLocator(&#8220;locationOfXMLFileFromHellOrSomeClassloaderThing&#8221;);<br />
Factory f = loc.locate(&#8220;factoryName&#8221;);<br />
Locator factoryLocator = f.createLocator(Constants.NEEDLESS_CONSTANT);<br />
Factory f = (Factory) factoryLocator.locate(ServiceLocator.createInstance());<br />
MyObjectFinally mof = f.createObject();<br />
} catch (StupidGratuitousCheckedException e) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e);<br />
} catch (SemiRedundantOneOffTypedStupidGratuitousCheckedException e2) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e2);<br />
} catch (FactoryNotLocatedException e3) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e3);<br />
} catch (LocatorNotAbleToBeInstantiatedException e4) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e4);<br />
} catch (XMLException e5) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e5);<br />
} catch (RandomParserMadnessException e6) {<br />
 throw new RuntimeException(&#8220;checked Exceptions Are Stupid and Microsoft was right to remove them from C#&#8221;,e6);<br />
}</p>
<p>But if Java wasn&#8217;t horrible like that then how would we fill the JCP committees <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I think Polyglotism is fine so long as it is strictly for the noble cause of laziness.  I go to great amounts of effort to be lazy!</p>
<p>-Andy</p>
]]></content:encoded>
	</item>
</channel>
</rss>

