HackerTube.live
Books / Functional Programming

THE READING ROOM / BOOK GUIDE

Programming Clojure

Stuart Halloway

A working introduction to Clojure for programmers who already know how to code, written by Stuart Halloway when the language was young and its tooling far less settled than it is today.

About the book

Programming Clojure is a language book aimed at experienced developers rather than beginners. It introduces Clojure as a Lisp dialect that runs on the Java virtual machine, so the reader is asked to hold two things at once: the syntax and idioms of a functional Lisp, and the practical reality of running code on the JVM alongside Java libraries. Halloway builds the material around the language's core ideas, including immutability, functional programming, concurrency and the Lisp tradition the language inherits.

The book's subject is the language itself, not a framework or an application to be built. It treats Clojure as a coherent design with reasons behind its choices, and it expects readers to engage with those reasons. That makes it a book about how to think in a Lisp on the JVM as much as a reference for syntax. The Java and JVM material matters throughout, because interoperability with Java is part of the language's premise rather than an afterthought.

The first edition documents Clojure at an early stage. Later editions and the language's own evolution have changed tooling, libraries and some conventions. Read it for the concepts and the idiom, and check current documentation for anything you intend to run.

How to read it

Approach the book in order and type the examples rather than skimming them. Clojure's syntax is sparse, and much of the learning happens in the REPL, where small expressions reveal how the language evaluates and composes. Readers coming from Java or another object-oriented language should expect to unlearn some habits around mutation and state.

The functional and concurrency material rewards patience. These are the arguments the book is making, and they are easier to follow with working examples in front of you than in the abstract. The Lisp heritage is treated as background rather than a separate history lesson, so prior Lisp experience helps but is not required. Difficulty sits at the intermediate level: the prose is direct, but the ideas assume programming maturity.

Who it suits

This suits programmers with existing experience in another language who want a structured route into Clojure's core ideas, particularly those working on or near the JVM who value Java interoperability. Readers curious about functional programming and concurrency will find the treatment grounded in a real language rather than abstract theory. It is less useful for complete beginners or for anyone seeking a current, tooling-focused guide.

Reading considerations

The first edition is the main limitation. Clojure and its ecosystem have moved on, so setup instructions, library references and some conventions may be outdated. Use it for concepts and idiom, and verify practical details against current documentation. Readers wanting production guidance should look to later editions or newer material.

Follow the HN conversation

37 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.

Search HN comments about this book ↗

Explore videos on the same subject ↗

Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.