The Liberating Experience of Common Lisp

Lisp, “smart people,” and thinking styles

  • Some recall essays calling Lisp a “language for smart people,” but many argue this is wrong or misframed.
  • Several claim Lisp is actually easier to teach than C/C++/Java, especially for beginners.
  • Others say Lisp resonates with particular thinking styles (functional, expression-based) more than with “intelligence” per se.
  • Lisp is also valued as a way to learn new mental models (recursion, symbolic computation).

Comparisons with other languages (Go, Java, Clojure, etc.)

  • Many enjoy Lisp/Clojure for personal or niche professional work, but rarely get to use it in day jobs.
  • Go is praised for forcing readable, straightforward code suitable for “average” teams.
  • Some describe moving from OO-heavy Java/C# to functional Lisps or Clojure as unlocking productivity and clarity.
  • Others enjoy Go or Ruby just as much, and reject the idea that Lisp is a higher “plane of consciousness.”

Power, macros, and maintainability

  • Macros and metaprogramming are seen as Lisp’s superpower but also a risk for abuse and unreadable code.
  • Concern: in flexible languages like Lisp or Scala, teams can diverge on “idiomatic style,” making codebases inconsistent.
  • Counterpoint: any language can produce unreadable “genius” code; discipline and shared conventions matter more than syntax.

Tools, REPL, and live systems

  • The Lisp REPL + editor integration (SLIME/Sly, SBCL, etc.) is repeatedly highlighted:
    • Inspect any function down to implementation.
    • Rich stack traces with live local variables.
    • Patch and recompile functions in a running process and resume execution.
  • Older Lisp machines (e.g., Genera) are cited as the pinnacle of this experience, though some note that similar environments haven’t been widely rebuilt.

Object orientation, state, and paradigms

  • Debate over when OO vs functional style is better:
    • OO seen as helpful for complex interacting stateful entities.
    • Functional/data-oriented approaches seen as better for information processing and business systems.
  • Common Lisp’s CLOS (with optional MOP) is presented as a powerful, different OO model (generic functions, multiple dispatch), not message-passing in the Smalltalk sense.
  • Some argue you don’t need OO for state management; others stress encapsulation and message-style modeling as valuable.

Ecosystem, packaging, and portability

  • Multiple commenters “bounce off” Common Lisp’s dependency and packaging story (Quicklisp, roswell, qlot, ASDF).
  • Complaints: outdated tooling, unclear interactions between per-user and per-project installs, weak versioned dependency resolution compared to modern ecosystems.
  • Some mitigate this with external tools (e.g., Guix) to pin versions, but overall packaging is seen as confusing and under-documented.

Types, safety, and testing

  • Comparison to strongly-typed FP languages (Haskell, Elm, OCaml, Rust): those are said to give a strong “if it compiles, it probably works” feeling.
  • In CL, people rely on tests plus optional SBCL type declarations; some feel this never quite matches the confidence of advanced static types.
  • Coalton (a typed language on CL) is mentioned as an experiment to bring that style of safety into the Lisp world.

Career pragmatics and enjoyment

  • Several distinguish between paid work (in mainstream languages like Go, JavaScript, Python) and hobby or greenfield projects (where they choose Lisp because it’s fun and empowering).
  • Some argue language choice in industry should prioritize team average, ecosystem, and maintainability; others prioritize developer joy for personal ventures.
  • A few wonder whether restrictive or “soulless” languages contribute to developer unhappiness, though others think management and process matter more.

Community and culture

  • Reports of CL community skewing toward “lone wolf” efforts and rewrites for speed or purity, which can be demotivating for collaborative OSS.
  • Others say ego-driven rewrites happen in all ecosystems, but agree that in CL it may be more pronounced.
  • Despite criticisms, many express deep affection for Common Lisp and encourage writing and sharing more real-world experience reports.