<?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: If you have to learn just one programming language</title>
	<atom:link href="http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language</link>
	<description>Random musings</description>
	<lastBuildDate>Tue, 15 Nov 2011 05:44:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Tijn</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-10349</link>
		<dc:creator>Tijn</dc:creator>
		<pubDate>Tue, 07 Sep 2010 08:33:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-10349</guid>
		<description>&lt;p&gt;Good post!&lt;/p&gt;

&lt;p&gt;I do have a remark though, which is about OCAML (and JOCAML). Although the syntax is a bit awkward, the same holds for any &#039;species&#039; of programming language you&#039;ll learn. I remember that my first Basic (in the early 80&#039;s) experience included getting used to the strange syntax, just as my first assembly, prolog, lisp, C/C++/Java, Haskell, Python and OCAML experience. Just because someone is used to a certain syntax doesn&#039;t mean that other syntax can&#039;t be good either (I prefer Python and Haskell, although that also take time to get used to). After a while most &#039;weird&#039; syntax issues disappear once a person starts to think in the logic of the language, and not the syntax (although I never got used to LISP, but that is something VERY personal, and not a reason not to recommend it).&lt;/p&gt;

&lt;p&gt;OCAML has a really good performance (close to C) but is high level. It can be used for functional and imperative programming and has classes.&lt;/p&gt;

&lt;p&gt;The reason for the &#039;+&#039; and the &#039;+.&#039; is because it is so strongly typed that the compiler has different optimizations for integers and real numbers, which after thinking about it makes sense. Integers are often only used for counting (in arrays etc), and reals for the more advanced mathematics.&lt;/p&gt;

&lt;p&gt;Please have another look at OCAML. Especially with the JOCAML it is muticore functional programming at its best. No wonder that Microsoft based F# on OCAML. :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Good post!</p>

<p>I do have a remark though, which is about OCAML (and JOCAML). Although the syntax is a bit awkward, the same holds for any &#8216;species&#8217; of programming language you&#8217;ll learn. I remember that my first Basic (in the early 80&#8242;s) experience included getting used to the strange syntax, just as my first assembly, prolog, lisp, C/C++/Java, Haskell, Python and OCAML experience. Just because someone is used to a certain syntax doesn&#8217;t mean that other syntax can&#8217;t be good either (I prefer Python and Haskell, although that also take time to get used to). After a while most &#8216;weird&#8217; syntax issues disappear once a person starts to think in the logic of the language, and not the syntax (although I never got used to LISP, but that is something VERY personal, and not a reason not to recommend it).</p>

<p>OCAML has a really good performance (close to C) but is high level. It can be used for functional and imperative programming and has classes.</p>

<p>The reason for the &#8216;+&#8217; and the &#8216;+.&#8217; is because it is so strongly typed that the compiler has different optimizations for integers and real numbers, which after thinking about it makes sense. Integers are often only used for counting (in arrays etc), and reals for the more advanced mathematics.</p>

<p>Please have another look at OCAML. Especially with the JOCAML it is muticore functional programming at its best. No wonder that Microsoft based F# on OCAML. <img src='http://blog.srinivasan.biz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Maslen</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-9929</link>
		<dc:creator>Christian Maslen</dc:creator>
		<pubDate>Wed, 18 Aug 2010 05:10:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-9929</guid>
		<description>&lt;p&gt;Nice post. I was under the impression that while the JVM does not do tail call optimization, the Scala compiler does.&lt;/p&gt;

&lt;p&gt;Having taken the time to learn Scala myself, I&#039;m pretty happy with it. Its also nice seeing more momentum with its uptake and the number of open source projects starting that are implemented in Scala.&lt;/p&gt;

&lt;p&gt;I still think its too early to tell if it will unseat Java in terms of new (enterprise) project numbers (its nowhere near that point now). I think much of that will depend on when Java 7 is released and reaction to it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Nice post. I was under the impression that while the JVM does not do tail call optimization, the Scala compiler does.</p>

<p>Having taken the time to learn Scala myself, I&#8217;m pretty happy with it. Its also nice seeing more momentum with its uptake and the number of open source projects starting that are implemented in Scala.</p>

<p>I still think its too early to tell if it will unseat Java in terms of new (enterprise) project numbers (its nowhere near that point now). I think much of that will depend on when Java 7 is released and reaction to it.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Erik</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8914</link>
		<dc:creator>Erik</dc:creator>
		<pubDate>Mon, 31 May 2010 02:55:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8914</guid>
		<description>&lt;p&gt;I don&#039;t think the argument for dynamic typing is it&#039;s easier to just not specify types.&lt;/p&gt;

&lt;p&gt;To me, the advantage is that you don&#039;t end up with insane interface pollution.... i.e., interfaces everywhere, by the hundreds, one for every method that wants to accept multiple different kinds of objects.&lt;/p&gt;

&lt;p&gt;In Ruby, you can print any object that has a .to_s method.  You don&#039;t have to create a Stringable interface, and all those objects don&#039;t have to inherit from String.  Just implement .to_s and throw it in there.&lt;/p&gt;

&lt;p&gt;To me, that&#039;s the big win.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think the argument for dynamic typing is it&#8217;s easier to just not specify types.</p>

<p>To me, the advantage is that you don&#8217;t end up with insane interface pollution&#8230;. i.e., interfaces everywhere, by the hundreds, one for every method that wants to accept multiple different kinds of objects.</p>

<p>In Ruby, you can print any object that has a .to_s method.  You don&#8217;t have to create a Stringable interface, and all those objects don&#8217;t have to inherit from String.  Just implement .to_s and throw it in there.</p>

<p>To me, that&#8217;s the big win.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Paramendra Bhagat</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8907</link>
		<dc:creator>Paramendra Bhagat</dc:creator>
		<pubDate>Sun, 30 May 2010 20:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8907</guid>
		<description>&lt;p&gt;This blog post is breathtaking in its comprehensiveness. I promptly reblogged it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This blog post is breathtaking in its comprehensiveness. I promptly reblogged it.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Leap</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8905</link>
		<dc:creator>Andrew Leap</dc:creator>
		<pubDate>Sun, 30 May 2010 20:31:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8905</guid>
		<description>&lt;p&gt;I&#039;d like to know how Lua is labeled a niche gaming language, when 40% of adobe lightroom is written in it.  Isn&#039;t that what criteria #4 is all about, a scripting language that does double duty as an application language?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to know how Lua is labeled a niche gaming language, when 40% of adobe lightroom is written in it.  Isn&#8217;t that what criteria #4 is all about, a scripting language that does double duty as an application language?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Bobo</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8904</link>
		<dc:creator>Bobo</dc:creator>
		<pubDate>Sun, 30 May 2010 20:25:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8904</guid>
		<description>&lt;p&gt;Nice analysis. I agree with most of it, though I would say that C# is in much more demand than you might think. Practically all jobs I see in the paper is C# or Java, but C# is mainly used in the enterprise.&lt;/p&gt;

&lt;p&gt;While I agree with Scala as a winner, it is not the easiest language to learn. Compared to for example Python, it will take a bit longer time to do much useful.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Nice analysis. I agree with most of it, though I would say that C# is in much more demand than you might think. Practically all jobs I see in the paper is C# or Java, but C# is mainly used in the enterprise.</p>

<p>While I agree with Scala as a winner, it is not the easiest language to learn. Compared to for example Python, it will take a bit longer time to do much useful.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Cedric</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8903</link>
		<dc:creator>Cedric</dc:creator>
		<pubDate>Sun, 30 May 2010 19:31:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8903</guid>
		<description>&lt;p&gt;Hi Babu,&lt;/p&gt;

&lt;p&gt;Interesting analysis, thanks.  I agree with the second commenter:  not only should have Fan been in your list but I think it would end up in the top two with Scala (and personally, I would pick Fan over Scala).&lt;/p&gt;

&lt;p&gt;-- 
Cedric&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Babu,</p>

<p>Interesting analysis, thanks.  I agree with the second commenter:  not only should have Fan been in your list but I think it would end up in the top two with Scala (and personally, I would pick Fan over Scala).</p>

<p>&#8211; 
Cedric</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8900</link>
		<dc:creator>Bryan</dc:creator>
		<pubDate>Sun, 30 May 2010 18:44:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8900</guid>
		<description>&lt;p&gt;I bow down to your total and complete nerdieness!  You are lord of the nerds.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I bow down to your total and complete nerdieness!  You are lord of the nerds.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8899</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Sun, 30 May 2010 18:28:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8899</guid>
		<description>&lt;p&gt;Thanks for the article, it was as well-written and in-depth as I could have hoped for.  In fact, it cleared a lot up for me.  I&#039;ve seen a lot of these languages mentioned on social bookmarking sites, but never really took the time to find out that Clojure runs on the JVM and has Lisp syntax, for example.&lt;/p&gt;

&lt;p&gt;I have to say, the comments degraded into the sort of dick-swinging, alpha-nerd, overtly defensive, pointless one-upmanship that makes me want to abandon software development.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the article, it was as well-written and in-depth as I could have hoped for.  In fact, it cleared a lot up for me.  I&#8217;ve seen a lot of these languages mentioned on social bookmarking sites, but never really took the time to find out that Clojure runs on the JVM and has Lisp syntax, for example.</p>

<p>I have to say, the comments degraded into the sort of dick-swinging, alpha-nerd, overtly defensive, pointless one-upmanship that makes me want to abandon software development.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Jonas B.</title>
		<link>http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language/comment-page-1#comment-8895</link>
		<dc:creator>Jonas B.</dc:creator>
		<pubDate>Sun, 30 May 2010 17:38:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.srinivasan.biz/?p=484#comment-8895</guid>
		<description>&lt;p&gt;Perl line noise? That&#039;s just silly. I read Perl every day that I haven&#039;t written myself and it&#039;s not harder than any other language. Of course you can write obfuscated code in it if you want, much like C or Java, but why would you other than the novelty value?&lt;/p&gt;

&lt;p&gt;The object syntax is too verbose but it&#039;s not a deal breaker (and it&#039;s pretty transparent what goes on underneath so once you get it, you get it). If you write new code you can choose a more modern syntax. That&#039;s the reason Perl 6 is still vaporware, by the way, Perl 5 is still in active development.&lt;/p&gt;

&lt;p&gt;It&#039;s simple, it&#039;s pretty fast for an interpreted language (faster than Python and Ruby), it&#039;s got pretty solid Unicode support (hardly any other has, except perhaps Python), and the massive amount of free code at CPAN is a life-saver.&lt;/p&gt;

&lt;p&gt;It still may not be the #1 language to learn if you should learn only one; In my opinion that would be C due to it&#039;s universality and being only halfway-high-level so any structure and technique you learn is universally useful. But you count it out for all the wrong reasons.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Perl line noise? That&#8217;s just silly. I read Perl every day that I haven&#8217;t written myself and it&#8217;s not harder than any other language. Of course you can write obfuscated code in it if you want, much like C or Java, but why would you other than the novelty value?</p>

<p>The object syntax is too verbose but it&#8217;s not a deal breaker (and it&#8217;s pretty transparent what goes on underneath so once you get it, you get it). If you write new code you can choose a more modern syntax. That&#8217;s the reason Perl 6 is still vaporware, by the way, Perl 5 is still in active development.</p>

<p>It&#8217;s simple, it&#8217;s pretty fast for an interpreted language (faster than Python and Ruby), it&#8217;s got pretty solid Unicode support (hardly any other has, except perhaps Python), and the massive amount of free code at CPAN is a life-saver.</p>

<p>It still may not be the #1 language to learn if you should learn only one; In my opinion that would be C due to it&#8217;s universality and being only halfway-high-level so any structure and technique you learn is universally useful. But you count it out for all the wrong reasons.</p>]]></content:encoded>
	</item>
</channel>
</rss>

