Try Clojure
Editing Lisps & Parentheses
- Many argue new Lisp/Clojure REPLs should ship with structural editing (Paredit/Parinfer) and explain it early; otherwise people assume “raw parens typing” is the norm and quit.
- Others say basic editor features (auto-closing/matching/rainbow parens) already make parentheses manageable.
- Some describe modern editors (VS Code + Calva, Helix, IntelliJ+Cursive) as providing good structural navigation without Emacs.
- There is disagreement on whether Clojure code is inherently easy to read; some find it “write-only” without deep familiarity.
Tooling, REPL & Error Messages
- Repeated complaints: confusing official CLI and config, complex REPL setups, leaky stack traces, and poor error messages—especially type/interop errors.
- Some say third‑party tools (Cursive, Calva, clojure-lsp, clj-kondo, shadow-cljs) and newer workflows (deps.edn, babashka) greatly improve the experience, but require investment.
- Several compare Clojure unfavorably with Rust/Go in terms of “out-of-the-box” tooling and diagnostics.
JVM, Performance & Runtimes
- Mixed feelings about the JVM: some view it as a high-quality, performant platform; others have strong aversion from prior Java experience.
- Clojure’s slow startup is attributed more to loading/compiling large core namespaces than to JVM boot alone; GraalVM native images and Babashka are mentioned as mitigations.
- ClojureScript inherits some JavaScript “wat” behavior; this surprised some who thought it reflected Clojure itself.
Ecosystem: Web, Scripting, Data
- No dominant “Rails/Django-style” full-stack framework; instead many small, composable libraries (Ring, Reitit, Hiccup, HoneySQL, HugSQL, Biff, XTDB, etc.).
- Some see the lack of an ORM and batteries-included framework as a barrier, especially for newcomers; others consider this freedom and explicit SQL a feature.
- Babashka is widely praised as a fast-starting, batteries-included scripting/runtime layer.
- Scicloj stack is cited as competitive with Python for data science/ML.
Functional Programming & Immutability
- Strong advocacy for immutability and functional style; some claim mutable collections are “good enough” in practice and that persistent data structures’ benefits are overstated.
- A heated subthread debates performance of purely functional languages vs mutable ones, with no consensus.
Adoption, Community & Learning
- Many express love for Clojure’s design, REPL-driven workflow, and “finished” feel; some say it was career-changing.
- Others argue Clojure lost momentum as mainstream languages adopted FP features and because early tooling/learning curve burned teams.
- Community is generally described as friendly, but the language, tooling, and ecosystem are seen as “expert-friendly” rather than beginner-friendly.