Lisps — Tier 3 Family Index

Lisp Languages — Tier 3 Index

  • Type: language-family-index
  • Family: Lisp
  • Languages catalogued: 22 + 8 Scheme implementations
  • Last updated: 2026-05-07

Family overview

The Lisp family descends from John McCarthy’s 1958 LISP, defined by S-expression syntax (code-as-data / homoiconicity), first-class functions, and powerful macro systems. What unifies the family is not a single semantics — dialects span Lisp-1 vs Lisp-2 namespacing, dynamic vs lexical scope, eager vs lazy evaluation, GC’d vs manually managed, dynamic vs (more recently) static typing — but the shared cultural commitment to programs as transformable data and to letting users extend the language itself. You’ll encounter Lisps anywhere extensibility is paramount: editor scripting (Emacs Lisp), CAD scripting (AutoLisp), embedded scripting (Janet, Fennel), research vehicles (Shen, Carp), and JVM/BEAM/JS hosts targeting existing ecosystems. Historically, Lisp birthed garbage collection, dynamic typing, REPLs, exception handling, and the read-eval-print loop — concepts every modern language now takes for granted.

In our deep library

  • common-lisp — ANSI-standardized industrial Lisp; CLOS, condition system, SBCL/CCL implementations.
  • scheme — Minimalist Lisp-1 with hygienic macros and tail-call guarantee; R5RS/R6RS/R7RS standards.
  • racket — Scheme descendant turned “language laboratory” with #lang dialect system and contracts.
  • clojure — JVM-hosted Lisp emphasizing immutability, persistent data structures, and STM.

Tier 3 — the family

LanguageFirst releaseStatus (2026)Niche / use caseWhy it mattersSource
Emacs Lisp (elisp)1985Active (core to Emacs 30+)Editor extension language for GNU EmacsThe most widely-deployed Lisp dialect by user count; Lisp-2 with dynamic scope by default (lexical opt-in since 24.1)https://www.gnu.org/software/emacs/manual/html_node/elisp/
AutoLisp1986Active (legacy in AutoCAD)CAD automation inside AutoCADEmbedded Lisp used by tens of thousands of mechanical/architectural firms; Visual LISP added IDE+OOP in 1999https://help.autodesk.com/view/OARX/2024/ENU/?guid=GUID-1B6D03D0-78D1-4DB6-B0E3-2B7669B5B2E6
Hy2013Active (1.0 released 2024)Lisp surface for Python ecosystemCompiles to Python AST so it interoperates with NumPy/PyTorch/etc. with zero FFI; macro-driven Pythonhttps://hylang.org
LFE (Lisp Flavored Erlang)2008ActiveLisp on the BEAM VMBrings macros and S-expr syntax to Erlang/OTP; full interop with Erlang processes and supervision treeshttps://lfe.io
newLISP1991Maintenance modePractical scripting / webSmall (~400KB) standalone interpreter; one-off ORO (“one reference only”) memory model instead of GC; controversial but pragmatichttp://www.newlisp.org
PicoLisp1988Active (niche)Minimalist 64-bit-cell Lisp + DBFully dynamic, first-class FEXPRs, built-in Pilog (Prolog) and DB layer; one of the smallest serious Lisp implementationshttps://picolisp.com
Janet2017Active and growingEmbeddable scripting LispModern alternative to Lua: PEG parser built-in, real threads, fibers, easy C embedding; written by Calvin Rosehttps://janet-lang.org
Fennel2016ActiveLua-flavored LispCompiles to Lua with no runtime cost; popular for Love2D/TIC-80 game scripting and Neovim confighttps://fennel-lang.org
Carp2016Active (research-y)Statically-typed compiled Lisp without GCOwnership-based memory model (borrow-checker-like) and ML-flavored Hindley-Milner inference; targets game/audio/realtimehttps://github.com/carp-lang/Carp
Wisp2013Niche / experimentalIndentation-based SchemeSRFI-119; reduces parenthesis count for those who want Python-style layout while retaining Scheme semanticshttps://srfi.schemers.org/srfi-119/
Shen2011Active (small community)Lisp + optional dependent-ish typesSequent-calculus-based optional static type system; portable across CL, Clojure, JS, Python kernelshttps://shenlanguage.org
Kawa1996ActiveScheme on JVMCompiles Scheme to JVM bytecode with Java interop; used as a scripting layer (and embeds R7RS)https://www.gnu.org/software/kawa/
Babashka2019Active and popularFast-startup Clojure for shell scriptsGraalVM native-image build of a Clojure subset — millisecond startup vs JVM Clojure’s seconds; killer for CLI toolinghttps://babashka.org
Joker2017ActiveClojure-like for Go/shellImplemented in Go; ships as a single static binary; primarily a Clojure linter (“joker —lint”) and small scripting toolhttps://joker-lang.org
Arc2008DormantPaul Graham’s experimental LispPowers Hacker News; proof-of-concept for “100-year language” terseness; effectively single-implementationhttp://arclanguage.org
Dylan1992Inactive (Open Dylan maintained)Common-Lisp-flavored OOCMU/Apple offshoot; multiple-dispatch generic functions and a non-S-expression algebraic syntax — a “Lisp with curly history”https://opendylan.org
ISLISP1997 (ISO/IEC 13816)Inactive (standard frozen)ISO-standardized minimal LispThe only ISO-blessed Lisp; small core for embedded use; OpenLisp is the main implementationhttps://www.iso.org/standard/22987.html
Goo~2001AbandonedSuccessor-to-Dylan attemptJonathan Bachrach’s research vehicle — multiple dispatch + macros + minimalism; influenced later research designshttps://people.csail.mit.edu/jrb/goo/
MAL (Make-A-Lisp)2014Active (educational)“Build a Lisp in N steps”Pedagogical project with implementations in 80+ host languages; the canonical “learn how interpreters work” pathhttps://github.com/kanaka/mal
NewtonScript1993Defunct (Newton EOL 1998)Apple Newton handheld OS scriptingPrototype-based OO with Lisp/Self heritage; introduced “differential inheritance” later seen in Self/JShttps://en.wikipedia.org/wiki/NewtonScript
Bel2019DormantPaul Graham’s Arc successor12-axiom theoretical Lisp specified entirely in Bel itself; minimal practical adoption but conceptually influentialhttp://paulgraham.com/bel.html
EuLisp1990InactiveEuropean “clean Lisp” effortModule system, single namespace, level-0/1/2 conformance tiers; influenced Goo and modern Lisp designhttps://github.com/EuLisp

Scheme implementations sub-list (R5RS / R6RS / R7RS beyond Racket)

These deserve a row because Scheme as a language standard has many strong implementations, each with different trade-offs:

ImplementationFirst releaseStatus (2026)Notes
Chez Scheme1985Active (open-sourced 2016)Industry-grade incremental compiler from Cisco; powers Racket-on-Chez
Chicken Scheme2000ActiveCompiles via C; “egg” package system; widely used for production scripting
Guile1993ActiveGNU’s official extension language (used by Guix, Lilypond, GnuCash)
Gambit1988ActiveHighly portable; Termite Erlang-like distributed-actor library
MIT/GNU Scheme1986ActiveOriginal SICP companion; full numeric tower
Bigloo1992ActiveScheme-to-C/JVM/.NET compiler with optional static types
Larceny1991MaintenanceR6RS-focused; native code via twobit compiler
Ypsilon / Mosh2008NicheR6RS implementations targeting embedded use

Notable threads

Lisp-1 vs Lisp-2 separation. Scheme, Clojure, Arc and most modern Lisps are Lisp-1: a single namespace where functions and values share a binding environment. Common Lisp, Emacs Lisp, and Picolisp are Lisp-2 (or higher), with separate cells per name. The schism dates to MacLisp/Scheme in the 70s and is mostly settled in favor of Lisp-1 for new languages — but the Lisp-2 camp argues separation prevents accidental shadowing of list, map, etc. by user variables. This single design choice cascades through macro hygiene, FUNCALL ergonomics, and how naturally higher-order programming reads.

Hosted Lisps as ecosystem bridges. Since 2010 the dominant strategy for new Lisps has been to host on a richer runtime rather than build from scratch: Hy (Python), Fennel (Lua), LFE (BEAM), Babashka (GraalVM), Kawa (JVM), Frege (technically Haskell-on-JVM but same playbook). This trades Common Lisp’s standalone power for instant access to NumPy / Love2D / OTP / npm. The pattern echoes Clojure’s original 2007 bet that “host first, language second” is how you ship a modern Lisp.

Static typing’s slow arrival. Classic Lisp is dynamic to the bone. The 2010s brought serious typed Lisps: Typed Racket (gradual), Carp (Hindley-Milner + linear types), Shen (sequent calculus), and Coalton (an HM type system embedded in Common Lisp). None has displaced dynamic Lisp culturally, but they all answer the long-running critique that Lisp programs are unmaintainable at scale — by importing ML-family ideas into S-expression syntax.

Minimalism as a stance. Picolisp (cells of exactly 64 bits, no compiler), MAL (Lisp in 11 steps), Bel (12 axioms), and Arc (terseness above all) form a cluster where being small is the design goal. They contrast with Common Lisp’s encyclopedic ANSI standard — and demonstrate that “Lisp is the smallest language that can describe itself” remains a live design tension, not a settled question.

Citations