Lisp is Not an Acceptable Lisp — cover art: a small storybook study at evening with a beautifully bound oxblood-and-gold volume on a stand, its pages held open by a small brass weight to show only nested empty parentheses; beside it a small open notebook full of practical workshop notes, scuffed and well-used. 🤓

2006 · Stevey's Blog Rants · Rant

“I guarantee you there isn't one single Lisp programmer out there who uses exclusively Lisp. Instead we spend our time hacking around its inadequacies, often in other languages.”
— From Lisp is Not an Acceptable Lisp, April 2006
Read the essay

© 2006 Steve Yegge. Originally published at Stevey's Blog Rants.

Author’s note

This article raised up quite a hue and cry in the Lisp community.

It's still a good read, after all these years, though a bit heavy on language details. But it needed that for a modicum of credibility.

Note that this article predates Clojure, which is a Lisp that does many, many things right. It is based on the JVM, which has held it back a bit, but if any one Lisp other than CL could go mainstream, I think it might be Clojure.

AI Notes

Four months after Eric Kidd's Why Ruby is an acceptable LISP spawned a comment thread large enough to evolve its own species, Steve makes the counter-observation nobody else seemed willing to: Lisp is not an acceptable Lisp — for any value of Lisp. The Road to Lisp is real and the destination is genuinely enlightening, but Lisp is just the last semi-civilized outpost before the swamp most programmers spend their careers hacking around in. The empirical claim: there isn't a single working Lisp programmer who uses only Lisp; every Lisper spends part of every week working around the language's inadequacies in some other language. From there Steve enumerates the specific unfixables — which Lisp do you even pick (Paul Graham "Microsofted" Common Lisp by pre-announcing Arc); an ancient spec that omits threads, filesystem access, processes, IPC, Unicode; CLOS bolted on so awkwardly that length isn't even polymorphic; macros that aren't hygienic, aren't first-class, and have no tooling. The refusal to integrate any of this, Steve argues, is a religious move, not a technical one.

The companion piece to Software Needs Philosophers, published the same month — the same argument at two scales. Also a useful data point on how Steve handles inside-the-tent criticism: he's making the argument as someone who spent a year on the Road, not as a hostile outsider.

Related listings

  • 2006

    Software Needs Philosophers

    Same month — the broader argument. Software Needs Philosophers names the deficit of careful thinking in the industry; Lisp is Not an Acceptable Lisp is the deficit in action inside one specific community.

  • 2007

    The Next Big Language

    A year later — the methodology. Acceptable Lisp argues that no existing Lisp meets the bar; The Next Big Language sets out the bar against which any candidate, Lisp or otherwise, gets measured.

  • 2004

    Tour de Babel

    The pan-language survey from the Drunken era. Acceptable Lisp is the Lisp chapter of that book, written two years later and on its own.

Where it was argued