Next: , Up: Essays About Lisp   [Contents][Index]


What’s Wrong With Lisp

Contrary to what the title says, we don’t think there is anything particularly wrong with the Lisp programming language. However, a large number of people seem to have very strong and very strange reactions to this particular programming language.

I will … attempt to analyze some commonly recurring criticism of Lisp in an attempt to shed some light on the question and why it is often asked.

Today, it is a modern, multi-paradigm language which has perhaps the most sophisticated features of all general-purpose languages in use (the object system, macros, reader macros, conditions, etc, etc). The first question one might ask is then "If Lisp is so good, why is it not more popular?". People who ask such a question typically assume that "good" implies "popular", and thus look for some part of Lisp that is NOT good, which would explain why it is not popular. However, there is absolutely no reason to assume that "good" implies "popular", so the question is really quite naive.

Lisp is not THAT unpopular (and now I will include Emacs Lisp for convenience). In a recent line count, Lisp came in as number 4 when it comes to number of source lines of code (SLOC) in the Debian GNU/Linux (Woody) distribution, after C, C++, and shell with some 4 million SLOC (around 4%), before Perl, Python, ML, Fortran, etc.

Lisp is sufficiently different from what most people already know and expect in a programming language, that they just aren’t willing to make the effort. In a different essay, I called these people "performance oriented", and they (unfortunately) make up the vast majority of people in general, though perhaps disproportionally so in software developers. To summarize that essay, they are simply victims of an incredibly strong psychological force (that exist to some degree in all of us) that makes the person attempt to explain away something new as being bad or useless, just in order to avoid the hard work of having to learn it. The stranger the new thing is (like Lisp), the harder the victim estimates the work to learn it, and the more important it becomes to declare it bad or useless.

Why should all that counts in a programming language be popularity?

I often see the very revealing parallel drawn between Lisp and a fine violin. Should we alter violins in order to attract people who are used to playing the accordion, and who are not willing to learn the violin because it is too hard and too different from the accordion? Of course not! The violin has its place, and is a great instrument when played by someone who really masters it. Lisp is a great programming language when used by someone who knows how to use it. Dumbing it down to attract mediocre performance-oriented programmers would be a grave mistake.


Next: Tutorial on Good Lisp Programming Style, Up: Essays About Lisp   [Contents][Index]