The programmers who live in Flatland

Lack of Concrete Examples and Tone of the Essay

  • Many readers wanted specific, minimal examples of Lisp/Clojure macros delivering capabilities that are clearly harder or uglier in mainstream languages.
  • Without such examples, the Flatland/Blub framing felt hand‑wavy or even patronizing, especially to people who know Lisp and still choose other tools.
  • Several called the metaphor a “thought‑terminating cliché” that avoids grappling with substantive criticisms (ecosystem, tooling, team usability).

Macros and the “Third Dimension”

  • Supporters say robust macros and homoiconicity enable powerful compile‑time transformations: DSLs, custom control structures, automatic serialization, embedded log/trace systems, etc.
  • Counterpoint: most modern languages have metaprogramming (Rust, TypeScript, Python ASTs), and many working Lispers rarely need macros beyond a few patterns.
  • Macros are likened to DSLs: they can reduce boilerplate but introduce new mini‑languages that are harder to read, debug, and onboard others to.

Language Choice, Teams, and Business Reality

  • Many experienced developers reported liking Lisp but preferring Python/TypeScript/Rust for most real-world work: better tooling, libraries, hiring pool, and maintainability.
  • Expressiveness and abstraction power can conflict with organizational needs: turnover, average skill level, and ease of reading “someone else’s clever code.”
  • Some see Lisp (and Forth, etc.) as “artisanal” tools: fantastic for a skilled soloist or small consultancy, less aligned with large corporate pipelines.

Static vs Dynamic Typing, Clojure Specifics

  • Dynamic typing in Clojure is a major sticking point for some; they argue large codebases benefit more from strong static types than from macros.
  • Others counter that Clojure’s immutability, REPL, tools like spec and advanced debuggers (e.g., Flowstorm) are major productivity and comprehension wins.
  • Typed variants exist but have limited uptake; some Clojure users would rather switch languages than bolt on static types.

Why Lisp Hasn’t “Won” and What It’s Good For

  • Debate over whether Lisp’s age and limited adoption imply it’s not that superior, or whether market forces and inertia dominate.
  • Several emphasize that learning Lisp (or Haskell, Prolog, Smalltalk, etc.) is still valuable as a mind‑expanding experience, even if you never deploy it at work.