Hyperpolyglot Lisp: Common Lisp, Racket, Clojure, Emacs Lisp

One giant cheat sheet for four Lisp languages sparks praise, nitpicks, and version-shaming

TLDR: A big cheat sheet comparing four Lisp programming languages got attention for making a confusing topic easier to scan. But the real action was in the comments, where readers argued over outdated examples, scolded bad coding style, and immediately demanded even more languages be added.

A giant side-by-side guide comparing four different Lisp languages dropped like catnip for programming nerds, promising one place to see how these famously oddball coding tools handle everything from variables to files to command-line scripts. On paper, it’s just a reference chart. In the comments, though? Instant chaos, corrections, and wishlist energy.

The loudest reaction was classic internet nitpicking: one commenter immediately clocked the age of the examples, basically yelling that Clojure 1.6 and Emacs 24.5 are ancient. That set the tone: admiration, yes, but with a side of “nice sheet, shame about the fossils.” Another crowd favorite was the syntax police moment, where a commenter politely-but-firmly dragged one example for using eval, the kind of move that makes seasoned coders clutch their pearls. Translation for normal people: they liked the guide, but some thought parts of it taught bad habits.

Then came the lovable chaos agents. One person showed up with a pull request to add their own Lisp, because of course the response to a comparison chart is “make it bigger.” Another wanted Jank added to the mix, while someone else started dreaming out loud about a cross-Lisp package manager just for fun. So the vibe was less “thanks for the chart” and more “great, now here are 12 more ways to turn this into a much bigger nerd soap opera.”

Key Points

  • The article is a side-by-side reference sheet comparing Common Lisp, Racket, Clojure, and Emacs Lisp.
  • It covers a wide range of topics, including execution, variables, collections, functions, files, macros, reflection, and Java interop.
  • The page provides concrete commands for checking versions, starting REPLs, running scripts, using shebangs, and creating executables.
  • It contrasts language rules for identifiers, quoting, local and global variables, null values, symbol handling, and metadata or attributes.
  • It also compares boolean behavior and numeric operations, including predicates, arithmetic operators, relational operators, and quotient/remainder forms.

Hottest takes

"These are pretty old versions" — eamonnsullivan
"One should avoid eval" — sinsudo
"I opened a PR for my lisp, Loon" — ecto
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.