Clojure 1.12.0 is now available

Clojure 1.12.0 is welcomed as a substantial yet backward-compatible release that strengthens Java interop, adds dynamic dependency loading (`add-libs`, `sync-deps`), and generally improves the REPL-driven workflow. Commenters describe Clojure as a stable but niche JVM language whose ecosystem evolves slowly, with many libraries considered "finished" rather than abandoned and strong leverage of Java and npm ecosystems. Debate centers on whether its shrinking visibility and limited job market outweigh benefits like long-term code stability, powerful tooling, and successful use at companies such as Nubank and Exoscale.

Ecosystem Health & Popularity

  • Many describe Clojure as stable but niche: not growing fast, but not collapsing either.
  • Some see a shrinking or stagnant user base, especially compared to Scala, Kotlin, Go, Python, etc.
  • Others argue “lindy” longevity: code from a decade ago still runs, and they expect Clojure to still be around in 10 years.
  • Job market is perceived as small; one commenter cites low LinkedIn hits for Clojure vs Scala.

Libraries, Maintenance, and JVM Interop

  • Frequent theme: Clojure libs often look “abandoned” but are actually finished; the language’s stability means little churn is required.
  • Counterpoint: some important libs were abandoned or stalled (e.g., Android, data access, Om, core.logic, ClojureQL), creating risk.
  • Community efforts like Clojurists Together and clj-commons exist to revive/maintain popular libraries.
  • JVM interop is repeatedly cited as a major advantage and safety net when Clojure-specific libs are missing.

Clojure 1.12.0 Features

  • Big praise for add-libs and sync-deps: easier repl-based experimentation, single-file demos, and sharing reproducible snippets.
  • New functional interface coercion is seen as a major win for Java interop, removing many adapter macros.
  • Some note this release is larger than usual; others trust the core team’s conservative design ethos.

Spec, Malli, and Validation

  • clojure.spec is still used; a “spec2” successor has done work but is currently stalled.
  • Malli is praised as what spec “should have been,” but it cannot integrate with compiler macro checking because the compiler special-cases spec.

Use Cases & Companies

  • Reported uses: backend/“enterprise” systems, finance/banking, data processing, frontend via ClojureScript, scripting via Babashka, even full businesses with small teams.
  • Several notable companies are said to use Clojure heavily (e.g., Nubank, cloud providers).

Developer Experience & REPL Culture

  • Strong emphasis on REPL-driven development; Clojure’s REPL is described as much closer to Common Lisp’s than Java’s or JavaScript’s.
  • AI tools are suggested as accelerators for onboarding devs who struggle initially to read Lisp syntax.

Adoption in Organizations

  • Mixed advice: some advocate piloting Clojure on small, low-risk services and investing in training; others strongly warn against introducing a niche language into a non-Lisp culture due to hiring and maintainability risks.
  • Experiences vary from highly successful org-wide migrations to “dumped Clojure for Go” due to performance/startup constraints (especially in serverless/lambda contexts).