The Nature of Lisp

The other day I ran across a pointer to Slava Akhmechet’s post The Nature of Lisp from back in 2006. It’s an old post, obviously, but is worth reading because it does a very nice job of explaining what’s so good about Lisp and why a programmer should spend a bit of time to understand it.

Akhmechet tried several times to understand Lisp and what all the excitement was about but kept failing. The problem, he says, was the strange syntax. Of course, Lisp doesn’t really have much syntax and what it does is extremely simple. What he was really complaining about is what all newcomers to Lisp complain about: all those parentheses.

Akhmechet’s approach to explaining Lisp’s notation and concepts is to relate them to something that many programmers are already familiar with: XML. Lisp’s s-expressions are basically like XML but simpler and less verbose. Why not just use XML then? To answer that question Akhmechet considers the ANT project builder from the Java world. If you squint real hard, ANT is also Lisp-like in its architecture. You can, for example, define new operations by writing a Java class to implement it. In that way, it’s extensible.

But that approach has its limitations, the first being that you can’t extend the ANT language in XML itself and you can’t introduce new syntax constructs. Akhmechet’s post describes, in a series of steps, how Lisp overcomes these difficulties and offers a much better solution.

If you’re a Lisp weenie or if you’re wondering why anyone would want to be one, take a look at this post. It does a great job in explaining the Lisp nature.

This entry was posted in General. Bookmark the permalink.