My thoughts after using Clojure for about a month

259 points · 132 comments on HN · read original →

After a month with Clojure, the author finds it more cohesive than Common Lisp and more practical than Scheme, despite syntax complexity.

The author built a static site generator in Clojure to learn the language. Strengths: Clojure's single-person design makes it more cohesive than Common Lisp (unified functions like `map` and `nth` across data types, simpler equality operators). It includes more batteries than Scheme, which deliberately minimizes features. The four core data types—lists, vectors, hash-maps, and sets—are ergonomic and equally treated. Weaknesses: Clojure has more syntax than traditional Lisps (three bracket types, special meaning in symbol names, unquote syntax). The author knows no Java and worries about eventual interop needs, though hasn't faced it yet. Overall: the author plans to continue with Clojure, including Project Euler problems, because it is "fun" and amenable to scripting via projects like Babashka.

What HN community is saying

Commenters highlight Clojure's strength for large codebases: immutable data prevents mutation bugs across distributed code paths, and functional design outperforms OOP at scale. A secondary theme: LLMs generate high-quality Clojure solutions when given REPL access for testing (10x more complex programs with zero errors), though raw models underperform compared to languages like TypeScript. One user notes Clojure's exceptional consistency (stable for 10+ years, no breaking changes) supports production use. Debate emerges over whether functional or OOP intuition suits large systems, with functional advocates arguing immutability and code locality reduce complexity.