Lisp Dialects Compared

Elia Scotto has an excellent post on the major Lisp dialects. There are, of course, several Lisp flavors and while they share many features—including, more or less, syntax—there are nevertheless differences that make the choice of which one to use nontrivial.

That’s where Scotto’s post comes in. He compares Common Lisp, Clojure, Racket (Scheme), and Elisp. He describes each dialect, its strengths, and its weaknesses. The TL;DR is:

Common Lisp
The oldest most complete Lisp, it had libraries and functions for almost everything. It’s premier implementation, SBCL, operates on a large range of hardware and compiles to native code. Its generated code rivals that of C.
Clojure
A modern dialect with some syntactical oddities, this Lisp runs on the JVM, which makes it perfect for large business apps running on Java. Scotto recommends Clojure as a first choice for a beginner looking for a practical and elegant Lisp.
Racket
Racket is a Scheme derived Lisp that’s particularly strong for designing and implementing new languages. Unlike the other Lisps, Racket lets you specify a syntax for your new language even if it’s not a Lisp-like syntax.
Emacs Lisp
Irreal readers probably need no introduction to Elisp. Scotto describes it as an older, limited extension language for Emacs but it is, of course, much more. I—and many others—use it for building tools and one-off internal apps.

There’s a lot more detail in Scotto’s post so be sure to a look at it.

This entry was posted in General and tagged . Bookmark the permalink.