Channels ▼

Jocelyn Paine

Dr. Dobb's Bloggers

((What ((is) with (all)) of (the) ()s?) Hmmm?)

June 22, 2008

In order to establish myself as a fair-minded individual, I decided to balance the pro-Lisp quotes I blogged last week in my lead-up to Randall Munro's cartoon, by searching the Web for anti-Lisp quotes.

The trouble was that I couldn't find many. Granted, some Lisp praise was half-hearted, as in the following peculiar conversation at (LOOP (FORMAT T "~%Hello Metafilter")):

— [jeffamaphone] Learning LISP is an interesting exercise in logic, but a waste of time if you want to write programs that are actually useful. I'll take LISP over Prolog though.
— [cortex] Faint praise. I could say the same for scabies.
— [spacewrench] LISP over scabies, or scabies over Prolog?

Clearly, my next research goal must be to invent a logic-programming language better than Prolog, then promote it under the acronym Scabies. Anyway, some programmers, while not against Lisp themselves, have worried that their customers might be. John Walker, in a page on the history of Lisp in AutoCAD, explains how this affected their marketing in 1985:

As the release of AutoCAD 2.1 loomed closer, we were somewhat diffident about unleashing Lisp as our application language. This was at the very peak of the hype-train about expert systems, artificial intelligence, and Lisp machines, and while we didn't mind the free publicity we'd gain from the choice of Lisp, we were afraid that what was, in fact, a very simple macro language embedded within AutoCAD would be perceived as requiring arcane and specialised knowledge and thus frighten off the very application developers for whom we implemented it. In fact, when we first shipped AutoCAD 2.1, we didn't use the word 'Lisp' at all - we called it the 'variables and expressions feature'. Only in release 2.18, in which we provided the full functional and iterative capabilities of Lisp, did we introduce the term 'AutoLisp'.

Of course, programmers do poke fun at Lisp's brackets. One is often informed that Lisp stands for "Lots of Irritating Single Parentheses". As "An Anonymous Coward" says in a Slashdot question and answer session with Kent Pitman:

((
What (
(is) with (all)
) of (the) ()s?
)
Hmmm?
)

But then, computer scientist Alan Perlis tells us that

Syntactic sugar causes cancer of the semi-colons.
and Lisp's unsugared prefix notation does make it remarkably concise. Therefore, according to Philip Greenspun:
SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing.

Actually, it's interesting that Greenspun mentions Haskell. Hear the passion in the Lisp quotes I mentioned last week. Lisp "feels like lightning between your fingertips". Lisp is "the language God would have used to implement the Universe". Or, as Alan Kay describes it:

The greatest single programming language ever designed.
Now show me such passion in praise of C++, Java, Perl, or Python. Or any other language. Including Haskell.

(Incidentally, I have just discovered the following definition in Shae Erisson's random #haskell quotes:

Ubuntu, an ancient African word meaning "I can't configure Debian".
)

Well, when the Director of Research at Google recommends Lisp, perhaps passionate enthusiasm is justified. Here's Peter Norvig on its benefits:

In Lisp, if you want to do aspect-oriented programming, you just do a bunch of macros and you're there. In Java, you have to get Gregor Kiczales to go out and start a new company, taking months and years and try to get that to work. Lisp still has the advantage there, it's just a question of people wanting that.

O ye little children and average programmers, let me end by provoking with an opinion from Lisp advocate Paul Graham. He writes:

Java was, as Gosling says in the first Java white paper, designed for average programmers. It's a perfectly legitimate goal to design a language for average programmers. (Or for that matter for small children, like Logo.) But it is also a legitimate, and very different, goal to design a language for good programmers.

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video