OK I GIVE UP

Clojure Programming: Practical LISP for the Java World

Book cover image

In addition to being a complete reference on Clojure, this book should serve as an example to everyone who writes books on software. The language is clean and direct without being dry, and the explanations are perfectly sufficient for the target crowd without getting tedious. The code examples are exactly the right length; exhibiting the main points with a sufficient amount of complexity, but not too long to make the reader feel like a runtime herself. What I really liked is that recommendations on good coding practice were clearly separated from explanations of the capabilities of Clojure. This way, the book does not read like an advocacy on how awesome Clojure is, because it helps you program exactly the right way.

If you are looking for a book on the essence of lisp and how to write great lisp code, though, this is not really the book for you. The chapter on macros, one of the biggest weapons of lispy languages, just explains the basics, and gives few examples of the power of lisp macros. This is a common pattern through the book; as it aims to gives a clear overview of Clojure, the handling of the basic language is thorough, but what can be achieved with the various capabilities presented is left to other sources and to exercise by the user.

I would highly recomend this book to anyone who wants to start working on Clojure with a good general knowledge of the language, so that sample code does not look like a soup of unknown terms and weird punctuation.