<?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 myth of LISP superiority</title>
	<atom:link href="http://www.twopotscreamer.com/lisp-superiority-myth/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.twopotscreamer.com/lisp-superiority-myth/</link>
	<description></description>
	<lastBuildDate>Mon, 14 Sep 2009 20:54:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mario</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-21052</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Mon, 14 Sep 2009 20:54:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-21052</guid>
		<description>Your document is pointless, you criticize lisp but lisp is not a programming language but a set of programming languaje.
Please read and know well some thing before criticize it. Criticize some thing than you even confuse it name is silly.
I can&#039;t comment more because i do not know what dialect of lisp are you talking about please specify.</description>
		<content:encoded><![CDATA[<p>Your document is pointless, you criticize lisp but lisp is not a programming language but a set of programming languaje.<br />
Please read and know well some thing before criticize it. Criticize some thing than you even confuse it name is silly.<br />
I can&#8217;t comment more because i do not know what dialect of lisp are you talking about please specify.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michel Bagnol</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-18368</link>
		<dc:creator>Michel Bagnol</dc:creator>
		<pubDate>Wed, 24 Jun 2009 13:40:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-18368</guid>
		<description>Note: In this post, I use LISP as a shorthand to &quot;Common Lisp&quot;

=== Introduction  ===
I&#039;m a software architect for real-time assembly machines, I&#039;ve been through many many languages in my career, and for my company I choose languages by popularity : because I can find some developers on the job market.


=== Chapter 1: Me and LISP ===
Yes, I choose the main stream languages for my company, but NO I do not like them more than LISP. In fact I personally prefer LISP over any other languages I&#039;ve ever used professionally, and here is why, in a single word: Homoiconicity
http://en.wikipedia.org/wiki/Homoiconicity

So where do I use LISP? not at work as I said, but for research projects on evolutionary algorithms. Homoiconicity is way more powerful that .NET&#039;s Reflection for instance, because it allows both self-examination and self-modification and is so natural in LISP syntax.

Also LISP, by it&#039;s syntax, allows you to extend the language in respect to the core language syntax. This allows you to extend the language in a natural manner. (please look at my programming challenge in this post).

Do I earn money with LISP : no.
Do I think LISP is the way programming languages should have evolve : yes.
Do I think LISP is like quantum mechanics : yes, because some geniuses have found a revolutionary approach but it took them 4 decades to have the rest of the world understanding it&#039;s core power.
Do I give an advantage to joob seekers who like LISP: yes, because they&#039;re way smarter in their resulting Java or C# architecture.


=== Chapter 2: Programming Challenge ===
I believe that language extension is very important, and that the resulting extension should respect the language syntax.

So, here is my challenge: Extend a mainstream language (Java, C++, C# or PHP) to have an IF working with 3 states (useful in signal processing): TRUE, UNKNOWN, FALSE
But you must respect the core language syntax so that programmer don&#039;t get confused. So with these mainstream language the 3 state IF call should look something like:
if3 (my-3-state-variable) {
 //my code executed the TRUE
 ...
} unknown {
 //my code executed the UNKNOWN
 ...
} else {
 //my code executed the FALSE
 ...
}


=== Chapter 3: Challenge solution in LISP ===
Here is a standard IF call in LISP:
(if my-boolean-variable
    &#039;(print &#039;true)
    &#039;(print &#039;false))

Here is the 3 states IF definition in LISP (the solution):
(defmacro if3 (test t-case nil-case ?-case)
  ‘(case ,test
     ((nil) ,nil-case)
     (?     ,?-case)
     (t     ,t-case)))

here is the new IF3 call:
(if3 my-3-state-variable
    &#039;(print &#039;true)
    &#039;(print &#039;unknown)
    &#039;(print &#039;false))
You can see that it looks like the standard IF syntax, the language has been extended in respect to the original syntax.

I&#039;m waiting for the mainstream languages solutions for IF3... in respect to the standard IF syntax or their originating languages.


=== Chapter 4: More language extension ===
Now, please imagine yourself extending the C# language to add the LINQ feature, how would you have performed this in C# 2.0 ??? for lispers this is strait forward (&quot;Practical Common Lisp&quot; Chapter 3).

This is the reason of LISP&#039;s longevity: user language extension.
The price for longevity: parenthesis, okay I&#039;ll pay!


=== Conclusion ===
Please, do us a favour, read at least Paul Grahm&#039;s &quot;On Lisp&quot; or Peter Seibel&#039;s &quot;Practical Common Lisp&quot; before criticising the probably most elegant language syntax and core set of features (not libraries, just the naked language).</description>
		<content:encoded><![CDATA[<p>Note: In this post, I use LISP as a shorthand to &#8220;Common Lisp&#8221;</p>
<p>=== Introduction  ===<br />
I&#8217;m a software architect for real-time assembly machines, I&#8217;ve been through many many languages in my career, and for my company I choose languages by popularity : because I can find some developers on the job market.</p>
<p>=== Chapter 1: Me and LISP ===<br />
Yes, I choose the main stream languages for my company, but NO I do not like them more than LISP. In fact I personally prefer LISP over any other languages I&#8217;ve ever used professionally, and here is why, in a single word: Homoiconicity<br />
<a href="http://en.wikipedia.org/wiki/Homoiconicity" rel="nofollow">http://en.wikipedia.org/wiki/Homoiconicity</a></p>
<p>So where do I use LISP? not at work as I said, but for research projects on evolutionary algorithms. Homoiconicity is way more powerful that .NET&#8217;s Reflection for instance, because it allows both self-examination and self-modification and is so natural in LISP syntax.</p>
<p>Also LISP, by it&#8217;s syntax, allows you to extend the language in respect to the core language syntax. This allows you to extend the language in a natural manner. (please look at my programming challenge in this post).</p>
<p>Do I earn money with LISP : no.<br />
Do I think LISP is the way programming languages should have evolve : yes.<br />
Do I think LISP is like quantum mechanics : yes, because some geniuses have found a revolutionary approach but it took them 4 decades to have the rest of the world understanding it&#8217;s core power.<br />
Do I give an advantage to joob seekers who like LISP: yes, because they&#8217;re way smarter in their resulting Java or C# architecture.</p>
<p>=== Chapter 2: Programming Challenge ===<br />
I believe that language extension is very important, and that the resulting extension should respect the language syntax.</p>
<p>So, here is my challenge: Extend a mainstream language (Java, C++, C# or PHP) to have an IF working with 3 states (useful in signal processing): TRUE, UNKNOWN, FALSE<br />
But you must respect the core language syntax so that programmer don&#8217;t get confused. So with these mainstream language the 3 state IF call should look something like:<br />
if3 (my-3-state-variable) {<br />
 //my code executed the TRUE<br />
 &#8230;<br />
} unknown {<br />
 //my code executed the UNKNOWN<br />
 &#8230;<br />
} else {<br />
 //my code executed the FALSE<br />
 &#8230;<br />
}</p>
<p>=== Chapter 3: Challenge solution in LISP ===<br />
Here is a standard IF call in LISP:<br />
(if my-boolean-variable<br />
    &#8216;(print &#8216;true)<br />
    &#8216;(print &#8216;false))</p>
<p>Here is the 3 states IF definition in LISP (the solution):<br />
(defmacro if3 (test t-case nil-case ?-case)<br />
  ‘(case ,test<br />
     ((nil) ,nil-case)<br />
     (?     ,?-case)<br />
     (t     ,t-case)))</p>
<p>here is the new IF3 call:<br />
(if3 my-3-state-variable<br />
    &#8216;(print &#8216;true)<br />
    &#8216;(print &#8216;unknown)<br />
    &#8216;(print &#8216;false))<br />
You can see that it looks like the standard IF syntax, the language has been extended in respect to the original syntax.</p>
<p>I&#8217;m waiting for the mainstream languages solutions for IF3&#8230; in respect to the standard IF syntax or their originating languages.</p>
<p>=== Chapter 4: More language extension ===<br />
Now, please imagine yourself extending the C# language to add the LINQ feature, how would you have performed this in C# 2.0 ??? for lispers this is strait forward (&#8220;Practical Common Lisp&#8221; Chapter 3).</p>
<p>This is the reason of LISP&#8217;s longevity: user language extension.<br />
The price for longevity: parenthesis, okay I&#8217;ll pay!</p>
<p>=== Conclusion ===<br />
Please, do us a favour, read at least Paul Grahm&#8217;s &#8220;On Lisp&#8221; or Peter Seibel&#8217;s &#8220;Practical Common Lisp&#8221; before criticising the probably most elegant language syntax and core set of features (not libraries, just the naked language).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: robocat</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-18091</link>
		<dc:creator>robocat</dc:creator>
		<pubDate>Wed, 17 Jun 2009 11:08:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-18091</guid>
		<description>I think his *main* point is good (even if the rest is mis-informed):

&quot;If LISP is so amazing, and if LISP has first mover advantage over anything the average programmer has ever heard of, why is it so resoundingly a bit player?&quot;

That rings true to me.</description>
		<content:encoded><![CDATA[<p>I think his *main* point is good (even if the rest is mis-informed):</p>
<p>&#8220;If LISP is so amazing, and if LISP has first mover advantage over anything the average programmer has ever heard of, why is it so resoundingly a bit player?&#8221;</p>
<p>That rings true to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: okflo</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17841</link>
		<dc:creator>okflo</dc:creator>
		<pubDate>Tue, 09 Jun 2009 17:03:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17841</guid>
		<description>Hmm, what do you mean with &quot;LISP&quot;? Common Lisp, or Scheme? Or Dylan? Perhaps Eurolisp? Not to forget Emacs Lisp, AutoCAD lisp and micro-lisp.... (just a hint) :)</description>
		<content:encoded><![CDATA[<p>Hmm, what do you mean with &#8220;LISP&#8221;? Common Lisp, or Scheme? Or Dylan? Perhaps Eurolisp? Not to forget Emacs Lisp, AutoCAD lisp and micro-lisp&#8230;. (just a hint) :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Heywood</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17824</link>
		<dc:creator>Heywood</dc:creator>
		<pubDate>Mon, 08 Jun 2009 14:48:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17824</guid>
		<description>A great and accurate article. I&#039;m amused by the comments; obviously, the LISP community is still based on ranting rather than coding. Well, have fun gentlemen. I&#039;m off to earn some money.</description>
		<content:encoded><![CDATA[<p>A great and accurate article. I&#8217;m amused by the comments; obviously, the LISP community is still based on ranting rather than coding. Well, have fun gentlemen. I&#8217;m off to earn some money.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 300baud</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17773</link>
		<dc:creator>300baud</dc:creator>
		<pubDate>Thu, 04 Jun 2009 19:53:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17773</guid>
		<description>This could still be a good article if you kept the title and threw everything else away.  I was disappointed.  I would have liked to read some actual criticism.</description>
		<content:encoded><![CDATA[<p>This could still be a good article if you kept the title and threw everything else away.  I was disappointed.  I would have liked to read some actual criticism.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blah</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17661</link>
		<dc:creator>Blah</dc:creator>
		<pubDate>Mon, 01 Jun 2009 08:49:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17661</guid>
		<description>“LISP has even lost the expression gap to C++ at this point.”

This statement completely destroys your credibility.

You fail utterly.  I am not sure if it is in understanding English or not so I will explain what the author is saying here.  He says basically that at one time there was a huge gap in the expressivity of LISP vs C++, however over time the addition of features to C++ has made this gap much smaller.  He at no time says that C++ is less expressive than LISP.  He furthermore respectfully requests that anyone who takes exception with this statement provide an example to illustrate their point.  You, like a pansy, have of course failed to do so.  This is of course because you can&#039;t.  
As for the rest of you the comments to this post have been very amusing.  None of you have made any attempt to tackle the main point which is, &quot;If LISP is anything more than a toy then why does no one use it?&quot;</description>
		<content:encoded><![CDATA[<p>“LISP has even lost the expression gap to C++ at this point.”</p>
<p>This statement completely destroys your credibility.</p>
<p>You fail utterly.  I am not sure if it is in understanding English or not so I will explain what the author is saying here.  He says basically that at one time there was a huge gap in the expressivity of LISP vs C++, however over time the addition of features to C++ has made this gap much smaller.  He at no time says that C++ is less expressive than LISP.  He furthermore respectfully requests that anyone who takes exception with this statement provide an example to illustrate their point.  You, like a pansy, have of course failed to do so.  This is of course because you can&#8217;t.<br />
As for the rest of you the comments to this post have been very amusing.  None of you have made any attempt to tackle the main point which is, &#8220;If LISP is anything more than a toy then why does no one use it?&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph Gutierrez</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17547</link>
		<dc:creator>Joseph Gutierrez</dc:creator>
		<pubDate>Fri, 29 May 2009 05:56:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17547</guid>
		<description>What your alluding to in your diatribe against Lisp is there is no library system to back up the power of Lisp. In all the modern languages you speak of have a powerful library system.

C++ = algorithm and container library
Ruby = Rails
Dojo = COMET
PHP = ?

Another thing that Lisp is missing is a code management system.</description>
		<content:encoded><![CDATA[<p>What your alluding to in your diatribe against Lisp is there is no library system to back up the power of Lisp. In all the modern languages you speak of have a powerful library system.</p>
<p>C++ = algorithm and container library<br />
Ruby = Rails<br />
Dojo = COMET<br />
PHP = ?</p>
<p>Another thing that Lisp is missing is a code management system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anon</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17512</link>
		<dc:creator>Anon</dc:creator>
		<pubDate>Thu, 28 May 2009 14:39:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17512</guid>
		<description>&quot;LISP has even lost the expression gap to C++ at this point.&quot;

This statement completely destroys your credibility.</description>
		<content:encoded><![CDATA[<p>&#8220;LISP has even lost the expression gap to C++ at this point.&#8221;</p>
<p>This statement completely destroys your credibility.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://www.twopotscreamer.com/lisp-superiority-myth/#comment-17486</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Wed, 27 May 2009 23:51:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.twopotscreamer.com/?p=846#comment-17486</guid>
		<description>Many things written. I only want to point out at one statement that troubles me:


&quot;If you really need a LISP, move to a modern LISP such as Clojure or Scala, or a modern near-lisp like Ruby.&quot;

Why would any of these language have anything to do with lisp now? Ruby is much more closer to perl+smalltalk (with more elegant syntax). Python isn&#039;t included in that list but python is very popular and more readable than perl IMO.
Scala is a java child isn&#039;t it?

I am not talking about the other aspects here. Just that these examples dont seem to say that there are &quot;better&quot; lisps. The more important question however should really be why lisp was no success the last 10 years, and if it will be relevant for the next 10 years to come.</description>
		<content:encoded><![CDATA[<p>Many things written. I only want to point out at one statement that troubles me:</p>
<p>&#8220;If you really need a LISP, move to a modern LISP such as Clojure or Scala, or a modern near-lisp like Ruby.&#8221;</p>
<p>Why would any of these language have anything to do with lisp now? Ruby is much more closer to perl+smalltalk (with more elegant syntax). Python isn&#8217;t included in that list but python is very popular and more readable than perl IMO.<br />
Scala is a java child isn&#8217;t it?</p>
<p>I am not talking about the other aspects here. Just that these examples dont seem to say that there are &#8220;better&#8221; lisps. The more important question however should really be why lisp was no success the last 10 years, and if it will be relevant for the next 10 years to come.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
