The many failures of Lisp: are they fixed by Clojure?

(written by Lawrence Krubner, however indented passages are often quotes)

Steve Yegge wrote about the failures of Lisp in 2006. I find it fascinating to read about the state of Lisp in 2006, as Lisp was not on my radar back then. I do not think I had the slightest idea what Lisp was, back then. When I look at my old blog, it would appear my first reference to Lisp was in 2009, and it only came on my radar screen because of my increasing interest in JVM languages, which caused me to hear about Clojure.

I guess the big question now is, does Clojure fix all of the problems with Lisp? Lord knows that Clojure makes some clever advancements, including special syntax for macros. Let’s look at Steve Yegge’s list:

Problem 1: Which Lisp?

Problem 2: Worthless Spec

Problem 3: CLOS

Problem 4: Macros

Problem [5]: Type System

Problems #1 and #2 would not be relevant to someone who has already committed to using Clojure. Certainly, Clojure does a lot to fix #4, maybe also parts of #5.

Yegge says:

My prediction: someone will get tired of waiting, and they’ll Torvalds Arc into obsolescence before it’s ever released. (If you don’t get the reference, it’s what Linux did to GNU Hurd).

Possibly Rich Hickey fulfills the prophecy?

Yegge also complains about the lack of libraries and other supporting code:

But what’s wrong with Common Lisp? Do I really need to say it? Every single non-standard extension, everything not in the spec, is “wrong” with Common Lisp. This includes any support for threads, filesystem access, processes and IPC, operating system interoperability, a GUI, Unicode, and the long list of other features missing from the latest hyperspec.

Obviously that is fixed since Clojure runs on the JVM and has access to all of the vast libraries of Java.

One thing where Yegge was wrong, or just too cynical, was in judging how people would react to the arrival of a new Lisp:

Your only other option is to design a new language, and you won’t get any help from Lisp people, because they will hate you. They love pointing to the trail of bodies left in the wake of every pioneer who’s tried this before, none of whom has emerged with a “successful” Lisp. Of course, they haven’t been successful because Lispers didn’t want to have anything to do with them; Lispers are just as incapacitated by their techno-religious beliefs as folks from other languages. Religions dislike each other, but no heretic is as damned as someone who starts with your religion and makes a modification to it. Just ask the Albigensians, for instance.

Clojure has, of course, gotten an enthusiastic reception.

Source