<?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"
	>
<channel>
	<title>Comments on: A Comment on &#8220;Multilanguage Programming&#8221;</title>
	<atom:link href="http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/</link>
	<description>Ask forgiveness, not permission.</description>
	<pubDate>Fri, 25 Jul 2008 06:15:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Guido Kollerie</title>
		<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/#comment-901</link>
		<dc:creator>Guido Kollerie</dc:creator>
		<pubDate>Wed, 07 May 2008 06:44:44 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=67#comment-901</guid>
		<description>As Lauri Pesonen wrote in one of the above comments:

&lt;blockquote&gt;
... in many cases it’s a long, hard road to introduce a new language to an organisation. Sadly many companies, like the two I mentioned above, concentrate on only one language. It’s quite a change in mindset to allow / embrace the use of multiple languages.
&lt;/blockquote&gt;

This has been my experience as well. In a response to David Heinemeier's October 26th, 2004 post titled "Fear-driven technology choices":

http://www.loudthinking.com/arc/000333.html

Where David's "Fear-driven technology choices" is basically the same as Steve's assessment of our industry's "bad habit of continually seeking homogeneity in platforms, in languages, in tools, in frameworks, etc "monolingual" choice

I commented that:

&lt;blockquote&gt;
I don't think it's us developers that make "fear driven technology choices", but the companies we work by means of our managers.

Something that has always puzzled me in the IT industry is that non-technical people seem to be making the technical choices for us, eg. what programming language/environment to use. If it was up to me I'd be using the best tools for the job; I'd be writing my parsers in a functional programming language (Clean or Haskell), I'd probably be doing my web application development work in Ruby (on Rails), etc. However this will never happen because management is afraid they can't hire a Clean or a Haskell programmer in case I should ever leave. And Ruby, hell they don't even now what Ruby is.

Management should stop trying to solve the problems that form the developer's domain. Either they trust their developers to do the right thing or they don't in which case they hired the wrong developers.
&lt;/blockquote&gt;

Management in IT has a strong tendency to state the problems they want their technical people to  solve in terms of solutions. If they want two systems to be integrated they should refrain from mentioning Web Services, XML, Java, or whatever potential solution they are vaguely familiar with. They should leave it to their architect, technical team lead, or whoever is (should) be in the position to make those decisions. Getting Erlang, Python or some other language considered  is almost insurmountable when management is thinking along the lines of Java and Web Services.</description>
		<content:encoded><![CDATA[<p>As Lauri Pesonen wrote in one of the above comments:</p>
<blockquote><p>
&#8230; in many cases it’s a long, hard road to introduce a new language to an organisation. Sadly many companies, like the two I mentioned above, concentrate on only one language. It’s quite a change in mindset to allow / embrace the use of multiple languages.
</p></blockquote>
<p>This has been my experience as well. In a response to David Heinemeier&#8217;s October 26th, 2004 post titled &#8220;Fear-driven technology choices&#8221;:</p>
<p><a href="http://www.loudthinking.com/arc/000333.html" rel="nofollow">http://www.loudthinking.com/arc/000333.html</a></p>
<p>Where David&#8217;s &#8220;Fear-driven technology choices&#8221; is basically the same as Steve&#8217;s assessment of our industry&#8217;s &#8220;bad habit of continually seeking homogeneity in platforms, in languages, in tools, in frameworks, etc &#8220;monolingual&#8221; choice</p>
<p>I commented that:</p>
<blockquote><p>
I don&#8217;t think it&#8217;s us developers that make &#8220;fear driven technology choices&#8221;, but the companies we work by means of our managers.</p>
<p>Something that has always puzzled me in the IT industry is that non-technical people seem to be making the technical choices for us, eg. what programming language/environment to use. If it was up to me I&#8217;d be using the best tools for the job; I&#8217;d be writing my parsers in a functional programming language (Clean or Haskell), I&#8217;d probably be doing my web application development work in Ruby (on Rails), etc. However this will never happen because management is afraid they can&#8217;t hire a Clean or a Haskell programmer in case I should ever leave. And Ruby, hell they don&#8217;t even now what Ruby is.</p>
<p>Management should stop trying to solve the problems that form the developer&#8217;s domain. Either they trust their developers to do the right thing or they don&#8217;t in which case they hired the wrong developers.
</p></blockquote>
<p>Management in IT has a strong tendency to state the problems they want their technical people to  solve in terms of solutions. If they want two systems to be integrated they should refrain from mentioning Web Services, XML, Java, or whatever potential solution they are vaguely familiar with. They should leave it to their architect, technical team lead, or whoever is (should) be in the position to make those decisions. Getting Erlang, Python or some other language considered  is almost insurmountable when management is thinking along the lines of Java and Web Services.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rajith Attapattu</title>
		<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/#comment-900</link>
		<dc:creator>Rajith Attapattu</dc:creator>
		<pubDate>Tue, 06 May 2008 23:10:37 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=67#comment-900</guid>
		<description>The ability to adapt and a hunger for improvement are the key traits I have seen in most of the sucessfull programmers I have worked with during my career. Most of those folks were proficient in several languages and always experimented with new languages and tried different things in their own free time. They were not hung up on one language. They appreciated the strenghts and knew the weakness of those languages and wasn't shy in using the right language for the right job allthough most times java was forced upon them by stupid managers.

If you are sound with programming concepts you should be able to pick up a new programing language easily. All you need is an open mind and a genuine willingness to learn something new that may (or may not) push you out of your comfort zone.

For most people it's their unwilligness to change, not any lack of ability that prevents them from learning something new. They are content with java or c++ (or whatever they are working with) and is quite happy with the status quo. I have met folks who think  assembly or c is all they need.

I always believed in using the right tool for the right job. It saves me time and effort. Why should I write 100 lines of java code when 10 lines of python can do the same job?

I usually learn as I go. I have never felt the need to completely master a language before I start coding seriously with it. I have been coding for 10 years now and I am still learning things. If I have the opportunity to write something in a new language, I grab it with both hands.</description>
		<content:encoded><![CDATA[<p>The ability to adapt and a hunger for improvement are the key traits I have seen in most of the sucessfull programmers I have worked with during my career. Most of those folks were proficient in several languages and always experimented with new languages and tried different things in their own free time. They were not hung up on one language. They appreciated the strenghts and knew the weakness of those languages and wasn&#8217;t shy in using the right language for the right job allthough most times java was forced upon them by stupid managers.</p>
<p>If you are sound with programming concepts you should be able to pick up a new programing language easily. All you need is an open mind and a genuine willingness to learn something new that may (or may not) push you out of your comfort zone.</p>
<p>For most people it&#8217;s their unwilligness to change, not any lack of ability that prevents them from learning something new. They are content with java or c++ (or whatever they are working with) and is quite happy with the status quo. I have met folks who think  assembly or c is all they need.</p>
<p>I always believed in using the right tool for the right job. It saves me time and effort. Why should I write 100 lines of java code when 10 lines of python can do the same job?</p>
<p>I usually learn as I go. I have never felt the need to completely master a language before I start coding seriously with it. I have been coding for 10 years now and I am still learning things. If I have the opportunity to write something in a new language, I grab it with both hands.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mohan Radhakrishnan</title>
		<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/#comment-899</link>
		<dc:creator>Mohan Radhakrishnan</dc:creator>
		<pubDate>Tue, 06 May 2008 12:38:36 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=67#comment-899</guid>
		<description>Actually fluency in multiple languages is becoming a requirement nowadays. I have been using Java for quite a long time but now I use Rhino too. I am learning powerful features of JavaScript because our tool uses Rhino. This helps me to implement these features to write JS libraries.
One thing leads to the other.

  When I was using WebSphere I used JACL ( JPython is supported too ) to write deploy scripts.

  One language alone is usually not enough even  in conservative projects.

Mohan</description>
		<content:encoded><![CDATA[<p>Actually fluency in multiple languages is becoming a requirement nowadays. I have been using Java for quite a long time but now I use Rhino too. I am learning powerful features of JavaScript because our tool uses Rhino. This helps me to implement these features to write JS libraries.<br />
One thing leads to the other.</p>
<p>  When I was using WebSphere I used JACL ( JPython is supported too ) to write deploy scripts.</p>
<p>  One language alone is usually not enough even  in conservative projects.</p>
<p>Mohan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Timmy Jose</title>
		<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/#comment-898</link>
		<dc:creator>Timmy Jose</dc:creator>
		<pubDate>Tue, 06 May 2008 05:37:20 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=67#comment-898</guid>
		<description>While I started reading your blog with a healthy bit of skepticism and a premeditate bias to disagree with your points, I actually agreed with most of your points in the end. From my own experience, being hardly two years out of college (just to give a measure of actual industry programming experience), I am already much more proficient in switching between languages like Java, C, Python and Javascript seamlessly, without losing context. Even Common Lisp and Scheme (which I have started seriously learning).
I agree that any "smart" (sic) person would be able to master the "paradigms" of programming and suitably adapt to an ever-changing technological world, which inevitably means being proficient in more than three languages of different principles ( to use Norvig's insinuation ;-) ).
Nice, balanced rebuttal of the mentioned comment.</description>
		<content:encoded><![CDATA[<p>While I started reading your blog with a healthy bit of skepticism and a premeditate bias to disagree with your points, I actually agreed with most of your points in the end. From my own experience, being hardly two years out of college (just to give a measure of actual industry programming experience), I am already much more proficient in switching between languages like Java, C, Python and Javascript seamlessly, without losing context. Even Common Lisp and Scheme (which I have started seriously learning).<br />
I agree that any &#8220;smart&#8221; (sic) person would be able to master the &#8220;paradigms&#8221; of programming and suitably adapt to an ever-changing technological world, which inevitably means being proficient in more than three languages of different principles ( to use Norvig&#8217;s insinuation ;-) ).<br />
Nice, balanced rebuttal of the mentioned comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://steve.vinoski.net/blog/2008/05/03/a-comment-on-multilanguage-programming/#comment-895</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Mon, 05 May 2008 16:37:57 +0000</pubDate>
		<guid isPermaLink="false">http://steve.vinoski.net/blog/?p=67#comment-895</guid>
		<description>&#62; It certainly can take some people many years to master enormous languages like Java and C++, but most languages are simply nowhere near that big.

Even when the languages are nowhere near that big, deep knowledge of libraries lets us avoid writing code ourselves.


&#62; If it were just syntax, then that would imply that all languages are equal in terms of expressiveness and capability, which we already know and accept to be untrue.

When there's common syntax we can playfully refactor from functional style to oo style to imperative style and figure out what fits. Several languages do to some extent support different styles but either take destructive assignment as basic or forbid destructive assignment.

Mozart/Oz provides a different syntax for destructive assignment, and with that we can more obviously refactor from a destructive assignment style to a pure functional style. It's slightly strange watching the programs become more declarative as you write more of them, without having any particular intention to make them more declarative - using destructive assignment when it feels right rather than as a matter of course.

http://www.mozart-oz.org/features.html</description>
		<content:encoded><![CDATA[<p>&gt; It certainly can take some people many years to master enormous languages like Java and C++, but most languages are simply nowhere near that big.</p>
<p>Even when the languages are nowhere near that big, deep knowledge of libraries lets us avoid writing code ourselves.</p>
<p>&gt; If it were just syntax, then that would imply that all languages are equal in terms of expressiveness and capability, which we already know and accept to be untrue.</p>
<p>When there&#8217;s common syntax we can playfully refactor from functional style to oo style to imperative style and figure out what fits. Several languages do to some extent support different styles but either take destructive assignment as basic or forbid destructive assignment.</p>
<p>Mozart/Oz provides a different syntax for destructive assignment, and with that we can more obviously refactor from a destructive assignment style to a pure functional style. It&#8217;s slightly strange watching the programs become more declarative as you write more of them, without having any particular intention to make them more declarative - using destructive assignment when it feels right rather than as a matter of course.</p>
<p><a href="http://www.mozart-oz.org/features.html" rel="nofollow">http://www.mozart-oz.org/features.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
