<?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: The Plague of Polyglotism</title>
	<atom:link href="http://www.codecommit.com/blog/java/the-plague-of-polyglotism/feed" rel="self" type="application/rss+xml" />
	<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism</link>
	<description>(permanently in beta)</description>
	<lastBuildDate>Mon, 09 Jan 2012 20:21:24 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tobe</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3550</link>
		<dc:creator>Tobe</dc:creator>
		<pubDate>Mon, 05 May 2008 15:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3550</guid>
		<description>Sadly I find very few programmers who can use even one language effectively. Programming is not in the first instance about language at all so from that viewpoint language shouldn&#039;t matter. In the next step you need to use the constructs of a particular language to encode your algorithm, e.g. if you write C-code in Java you have in some sense failed. So to use several languages effectively you don&#039;t just need to know them, you need to know them well, including the standard dirty workarounds of limitations. What is easier, to apply another language you barely know because parts of your program are more easily expressed with the constructs available or expand your ability to handle the situation in a language you know fairly well, deepening your skill in that language? I must confess I don&#039;t know.</description>
		<content:encoded><![CDATA[<p>Sadly I find very few programmers who can use even one language effectively. Programming is not in the first instance about language at all so from that viewpoint language shouldn&#8217;t matter. In the next step you need to use the constructs of a particular language to encode your algorithm, e.g. if you write C-code in Java you have in some sense failed. So to use several languages effectively you don&#8217;t just need to know them, you need to know them well, including the standard dirty workarounds of limitations. What is easier, to apply another language you barely know because parts of your program are more easily expressed with the constructs available or expand your ability to handle the situation in a language you know fairly well, deepening your skill in that language? I must confess I don&#8217;t know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3529</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 28 Apr 2008 22:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3529</guid>
		<description>A couple of people have commented that most development environments are already polyglot.  For example, all developers in our neck of the woods are expected to be able to maintain Java, SQL, Javascript, HTML, JSP and XML.  I would argue that each XML schema is its own language even.  Using all these languages is well established and accepted as the norm.  

I like to think of polyglot programming the same as construction.  I have a fairly standard set of tools for doing work around the house.  While doing some remodeling recently, I needed to attach some 2x4s to the concrete floor.  Now I could have accomplished this with the tools I had, but it would have taken quite a bit of time and the result would have been questionable.  Instead, I rented a stud driver that uses .22 caliber shells to drive the nails through the wood into the concrete at one time, and it was fun to use to boot.

Now this stud driver was a standard tool, although not one I own.  There was an extra cost involved, both in time and money, to use this tool, but the results were better.  The same analysis should be performed before adding a new language into the mix.  Will the result be better and easier to maintain, even with the cost of training developers in the new language?  Sometimes, the answer is yes and sometimes no.  If the new language will cut out a large chunk of code, then it there might be a good argument.  How much is a large chunk?  100s of lines of code eliminated.  If you think about what using SQL versus writing raw database IO saves you, you will see my point.  

On the other hand, there is the &quot;shiny&quot; problem.  Programmers will want to use the latest and greatest, not because of the great saving, but just because it is new and interesting.  

In summary, those responsible for a project are already open to the idea of multiple languages, but they should also be wise in evaluating the use of a new tool.  If a language is not already well-established and of great benefit, it should not be used.  If there is a great benefit, then it should be embraced.

Likewise, when using additional languages, the costs need to be weighed.</description>
		<content:encoded><![CDATA[<p>A couple of people have commented that most development environments are already polyglot.  For example, all developers in our neck of the woods are expected to be able to maintain Java, SQL, Javascript, HTML, JSP and XML.  I would argue that each XML schema is its own language even.  Using all these languages is well established and accepted as the norm.  </p>
<p>I like to think of polyglot programming the same as construction.  I have a fairly standard set of tools for doing work around the house.  While doing some remodeling recently, I needed to attach some 2&#215;4s to the concrete floor.  Now I could have accomplished this with the tools I had, but it would have taken quite a bit of time and the result would have been questionable.  Instead, I rented a stud driver that uses .22 caliber shells to drive the nails through the wood into the concrete at one time, and it was fun to use to boot.</p>
<p>Now this stud driver was a standard tool, although not one I own.  There was an extra cost involved, both in time and money, to use this tool, but the results were better.  The same analysis should be performed before adding a new language into the mix.  Will the result be better and easier to maintain, even with the cost of training developers in the new language?  Sometimes, the answer is yes and sometimes no.  If the new language will cut out a large chunk of code, then it there might be a good argument.  How much is a large chunk?  100s of lines of code eliminated.  If you think about what using SQL versus writing raw database IO saves you, you will see my point.  </p>
<p>On the other hand, there is the &#8220;shiny&#8221; problem.  Programmers will want to use the latest and greatest, not because of the great saving, but just because it is new and interesting.  </p>
<p>In summary, those responsible for a project are already open to the idea of multiple languages, but they should also be wise in evaluating the use of a new tool.  If a language is not already well-established and of great benefit, it should not be used.  If there is a great benefit, then it should be embraced.</p>
<p>Likewise, when using additional languages, the costs need to be weighed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: n8</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3527</link>
		<dc:creator>n8</dc:creator>
		<pubDate>Mon, 28 Apr 2008 17:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3527</guid>
		<description>&quot;As a basic example, we could write a Wicket component which makes use of Ruby’s RedCloth library for working with Textile.&quot;

You will not rest until you&#039;ve proved me wrong about this being easier to do in an external runtime over HTTP. ;) Someone should rewrite all of these in Scala and end the debate! (Several people have made nice regex wrappers;  I don&#039;t know if anything is in the stdlib tho.)</description>
		<content:encoded><![CDATA[<p>&#8220;As a basic example, we could write a Wicket component which makes use of Ruby’s RedCloth library for working with Textile.&#8221;</p>
<p>You will not rest until you&#8217;ve proved me wrong about this being easier to do in an external runtime over HTTP. <img src='http://www.codecommit.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Someone should rewrite all of these in Scala and end the debate! (Several people have made nice regex wrappers;  I don&#8217;t know if anything is in the stdlib tho.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dmaclay</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3526</link>
		<dc:creator>dmaclay</dc:creator>
		<pubDate>Mon, 28 Apr 2008 16:09:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3526</guid>
		<description>These days, familiarizing yourself with a particular subset of libraries or a style of program architecture can take longer than learning the basics of a new language.  Learning a new language, however, quickly weeds out the weaker programmers, and makes it easier to break people out of their preconceptions (which may conflict with your companies procedures) of how code should be structured.  If they can&#039;t adapt, they won&#039;t be much use...</description>
		<content:encoded><![CDATA[<p>These days, familiarizing yourself with a particular subset of libraries or a style of program architecture can take longer than learning the basics of a new language.  Learning a new language, however, quickly weeds out the weaker programmers, and makes it easier to break people out of their preconceptions (which may conflict with your companies procedures) of how code should be structured.  If they can&#8217;t adapt, they won&#8217;t be much use&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Larson</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3525</link>
		<dc:creator>Eric Larson</dc:creator>
		<pubDate>Mon, 28 Apr 2008 15:49:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3525</guid>
		<description>I think more likely you will see polyglot programming in the web space more than other places. The obvious necessary knowledge of HTML, XML, SQL, JavaScript and whatever server technologies requires a rather diverse set of skills. Throw RIA environments and the potential need to run things like Java/.NET for long running/intensive tasks with something like Rails in the foreground and I think the essence of the polyglot movement can be realized.

You make a good point though that if folks start making the assumption that doing a project in Lisp, Factor and OCaml is OK, then they are dreaming. Web development uses different language because the problem space has required it.</description>
		<content:encoded><![CDATA[<p>I think more likely you will see polyglot programming in the web space more than other places. The obvious necessary knowledge of HTML, XML, SQL, JavaScript and whatever server technologies requires a rather diverse set of skills. Throw RIA environments and the potential need to run things like Java/.NET for long running/intensive tasks with something like Rails in the foreground and I think the essence of the polyglot movement can be realized.</p>
<p>You make a good point though that if folks start making the assumption that doing a project in Lisp, Factor and OCaml is OK, then they are dreaming. Web development uses different language because the problem space has required it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3524</link>
		<dc:creator>Justin</dc:creator>
		<pubDate>Mon, 28 Apr 2008 14:58:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3524</guid>
		<description>You make a fair point but there is a counter argument worth considering.

I have worked in a large corporate IT environment where Java, C++ and C# hold sway.  In that environment a shift in management usually means the introduction of, what the proponents consider, a radical new technology strategy.  What this amounts to is a functor to take the code base from one of the above languages to another.  This is the world where polyglot programming is an anathema.

But if one allows best tool for the job to drive technology selection and  the functionality can be encapsulated and made accessible it should be relatively easy to either maintain or replace; it will likely be re-factored or replaced in any case and it is in all our interests to expose the one trick ponies of this world to a thoroughbred horse, once in a while.</description>
		<content:encoded><![CDATA[<p>You make a fair point but there is a counter argument worth considering.</p>
<p>I have worked in a large corporate IT environment where Java, C++ and C# hold sway.  In that environment a shift in management usually means the introduction of, what the proponents consider, a radical new technology strategy.  What this amounts to is a functor to take the code base from one of the above languages to another.  This is the world where polyglot programming is an anathema.</p>
<p>But if one allows best tool for the job to drive technology selection and  the functionality can be encapsulated and made accessible it should be relatively easy to either maintain or replace; it will likely be re-factored or replaced in any case and it is in all our interests to expose the one trick ponies of this world to a thoroughbred horse, once in a while.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3523</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 28 Apr 2008 12:17:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3523</guid>
		<description>Can&#039;t deny it&#039;s a powerful argument against polyglot programming in the real world.  But there is perhaps a counterargument that a competent developer really should be willing and able to pick up a new language pretty rapidly if he&#039;s working on it full time. And if you&#039;re not using competent developers, you&#039;re likely as not stuffed anyway. Is that a bit elitist? I think it might be a bit true, though.

And some languages are &quot;closer&quot; than others. Knowing Java makes it easier to pick up a JVM language because you can make use of the platform. And Groovy in particular is extremely accessible for a Java dev; Scala perhaps a bit less so.</description>
		<content:encoded><![CDATA[<p>Can&#8217;t deny it&#8217;s a powerful argument against polyglot programming in the real world.  But there is perhaps a counterargument that a competent developer really should be willing and able to pick up a new language pretty rapidly if he&#8217;s working on it full time. And if you&#8217;re not using competent developers, you&#8217;re likely as not stuffed anyway. Is that a bit elitist? I think it might be a bit true, though.</p>
<p>And some languages are &#8220;closer&#8221; than others. Knowing Java makes it easier to pick up a JVM language because you can make use of the platform. And Groovy in particular is extremely accessible for a Java dev; Scala perhaps a bit less so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Corno</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3522</link>
		<dc:creator>Corno</dc:creator>
		<pubDate>Mon, 28 Apr 2008 10:20:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3522</guid>
		<description>Your concerns are indeed valid considering the example that you give. The example uses 2 *general purpose* programming languages. Polyglot programming makes a lot more sense when 1 general purpose programming language is used in combination with several domain specific languages.
In this respect, this is nothing new. Almost all web applications are developed with at least 3 to 4 languages; SQL,HTML, Regular expressions in combination with PHP/C#/whatever.

You mention that projects will consist of many languages. For the same reason most software projects don&#039;t use dozens of libraries, most projects will also not use that many laguages, there&#039;s no added value. However, I&#039;m sure that you would also not question to use libraries in the proper situation. Well, DSL&#039;s can be interesting subsitutes for those libraries.</description>
		<content:encoded><![CDATA[<p>Your concerns are indeed valid considering the example that you give. The example uses 2 *general purpose* programming languages. Polyglot programming makes a lot more sense when 1 general purpose programming language is used in combination with several domain specific languages.<br />
In this respect, this is nothing new. Almost all web applications are developed with at least 3 to 4 languages; SQL,HTML, Regular expressions in combination with PHP/C#/whatever.</p>
<p>You mention that projects will consist of many languages. For the same reason most software projects don&#8217;t use dozens of libraries, most projects will also not use that many laguages, there&#8217;s no added value. However, I&#8217;m sure that you would also not question to use libraries in the proper situation. Well, DSL&#8217;s can be interesting subsitutes for those libraries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clinton R. Nixon</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3521</link>
		<dc:creator>Clinton R. Nixon</dc:creator>
		<pubDate>Mon, 28 Apr 2008 10:11:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3521</guid>
		<description>Your post is exceptionally pragmatic, and I&#039;d have to agree that for most cases, you&#039;re right.

To be idealistic for a moment, though: much ballyhoo is made about Paul Graham&#039;s statement that using Lisp for Viaweb, his web store startup that became Yahoo! Stores, gave him a strategic advantage. He has extrapolated from his statement that using a niche language for a project - albeit one that is suited for the problem domain - is an advantage, in that you have to hire smart people for the project, who will help you succeed. He&#039;s not incorrect. For many companies, that idea is not a great one, in that they couldn&#039;t afford to hire 10 or 20 people who, frankly, are good enough that they not only know two or three languages, one of which is obscure, but also want to know more and are capable of quickly learning more.

For a young company seeking an advantage, though, polyglotism is not a terrible idea: it forces you to find the best developers. This may be expensive - although I&#039;d argue back that the best developers could give a hoot about money, given a decent wage and a chance to learn - but it&#039;s an amazing advantage.</description>
		<content:encoded><![CDATA[<p>Your post is exceptionally pragmatic, and I&#8217;d have to agree that for most cases, you&#8217;re right.</p>
<p>To be idealistic for a moment, though: much ballyhoo is made about Paul Graham&#8217;s statement that using Lisp for Viaweb, his web store startup that became Yahoo! Stores, gave him a strategic advantage. He has extrapolated from his statement that using a niche language for a project &#8211; albeit one that is suited for the problem domain &#8211; is an advantage, in that you have to hire smart people for the project, who will help you succeed. He&#8217;s not incorrect. For many companies, that idea is not a great one, in that they couldn&#8217;t afford to hire 10 or 20 people who, frankly, are good enough that they not only know two or three languages, one of which is obscure, but also want to know more and are capable of quickly learning more.</p>
<p>For a young company seeking an advantage, though, polyglotism is not a terrible idea: it forces you to find the best developers. This may be expensive &#8211; although I&#8217;d argue back that the best developers could give a hoot about money, given a decent wage and a chance to learn &#8211; but it&#8217;s an amazing advantage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vesa Kaihlavirta</title>
		<link>http://www.codecommit.com/blog/java/the-plague-of-polyglotism/comment-page-1#comment-3520</link>
		<dc:creator>Vesa Kaihlavirta</dc:creator>
		<pubDate>Mon, 28 Apr 2008 10:00:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.codecommit.com/blog/java/the-plague-of-polyglotism#comment-3520</guid>
		<description>I&#039;ll just focus on one thing, and take it out of context a bit. I hope you don&#039;t mind.

&quot;If I add a fourth language - for example, Haskell - I’ve now narrowed the field so far, that it’s doubtful I’ll find anyone capable of handling all aspects within a reasonable price range. &quot;

I have heard that every public Haskell job posting attracts hunderds of applications, and perhaps several dozen good ones. The #haskell channel in Freenode is one of the largest (if not the largest) language channels.

I know I personally would at this point accept a Haskell coding job at a relatively low price, just to get some real world experience with that beautiful platform. 

And I don&#039;t think I&#039;m the only one with similar thoughts. So the claim that Haskell = no workforce seems very much bogus.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll just focus on one thing, and take it out of context a bit. I hope you don&#8217;t mind.</p>
<p>&#8220;If I add a fourth language &#8211; for example, Haskell &#8211; I’ve now narrowed the field so far, that it’s doubtful I’ll find anyone capable of handling all aspects within a reasonable price range. &#8221;</p>
<p>I have heard that every public Haskell job posting attracts hunderds of applications, and perhaps several dozen good ones. The #haskell channel in Freenode is one of the largest (if not the largest) language channels.</p>
<p>I know I personally would at this point accept a Haskell coding job at a relatively low price, just to get some real world experience with that beautiful platform. </p>
<p>And I don&#8217;t think I&#8217;m the only one with similar thoughts. So the claim that Haskell = no workforce seems very much bogus.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

