<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Curt's Comments: Language Choice -- It's all about idioms</title>
    <link>http://blog.curthibbs.us/articles/2006/01/04/language-choice-its-all-about-idioms</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>The thoughts of Curt Hibbs on technology, software, Ruby, and whatever...</description>
    <item>
      <title>Language Choice -- It's all about idioms</title>
      <description>&lt;p&gt;Reginald Braithwaite has posted some 
&lt;a href="http://www.braithwaite-lee.com/weblog/2006/01/finding-signal-to-noise-ratio-in-never.html"&gt;remarkably insightful comments&lt;/a&gt;
that puts the choice of programming languages in a new light. His basic thesis is that its not really about features at all. Its really about signal-to-noise ratio&amp;#8212;expressing more idioms in fewer bits.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;I believe that programming is an idiomatic activity. We learn idioms and then apply a kind of pattern-matching to recognise problems that can be solved with an idiom we already know. Some idioms are easier to express than others in each programming language.&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;Sure, all languages are Turing Complete and therefore equivalent in theory, but in practice you might find that the only way to express an idiom from Language A in Language B is to write a A-&amp;gt;B compiler or interpreter in B.&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;So let&amp;#8217;s talk about idioms instead of so-called features like syntax. What does it mean for one language to be &amp;#8220;higher level&amp;#8221; than another? To have a &amp;#8220;higher level of abstraction&amp;#8221;? My own interpretation is simple:&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;One language is higher-level than another if it expresses more idioms in fewer bits than the other language. Or fewer lines of code. Or fewer symbols. There&amp;#8217;s a really simple language idiom for this: Programs in a higher-level language have a high signal to noise ratio.&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Don&amp;#8217;t miss the part about meta-programming.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.jamesbritt.com/Development@Some_Remarkably_Astute_Points_About_Language_Choice.txt"&gt;via James Britt&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 04 Jan 2006 00:00:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:ab52e0a9-066c-49da-a620-c48500454a50</guid>
      <author>Curt Hibbs</author>
      <link>http://blog.curthibbs.us/articles/2006/01/04/language-choice-its-all-about-idioms</link>
      <category>software development</category>
    </item>
  </channel>
</rss>
