It is hard to be objective when reviewing this book. I have struggled to separate my enthusiasm for "Clojure The Language" from my honest opinion of "Clojure The Book".
Clojure is a remarkable language.
Clojure The Language deserves five stars every day of the week and twice on Sunday.
Clojure "The Book", on the other hand, is simply passable. The book is "okay".
Clojure is remarkable partly because Lisp is remarkable, and partly because Clojure has taken the difficult concept of concurrency and turned it into an exhilarating, attractive, efficient, sensible tool. I highly recommend that all curious programmers try the Clojure language.
Unfortunately, I cannot give this book a high recommendation. This is not a bad book. But it is definitely not a 5-star book.
The 5-star score would place this book in the same category as such beloved books as the Flanagan/Matsumoto Ruby book, or Meyers' Effective C++, or even Rossum's original (now deprecated) An Introduction to Python. Scoring the Stuart Halloway book as "on par" with those other books just simply does not ring true.
The Stuart Halloway book is a fast and easy read. However, it is more like a series of really nice blog entries than a solid introductory programming language book. I enjoyed Stuart's writing style, and I even enjoyed all of the sample code.
However, at the end of the day, "there is no there there".
I needed to refer to other books in order to become PRODUCTIVE with Clojure. When I purchased the Halloway book, no other Clojure books had been written yet, so I relied upon books that were written about coding techniques in other flavors of Lisp.
Reading the Halloway book was like watching a really fun and captivating movie trailer. It made me stop and say "Wow! That was cool! ... um... okay. Now can I watch the entire movie?"
If you are already fluent in another Lisp dialect, then you probably do not need this book.
In fact, if you already know some variant of Lisp, then you need to learn about the JVM and various Java platform ideas far more than you need to study Clojure itself. Clojure itself will come naturally to a "lisper". Yet you may be mystified about where to put your jar files and about what the various Java exceptions are telling you. And if you want to debug your Clojure programs, you will likely be using a Java debugger.
If you know Lisp, you can combine that previous knowledge with the Clojure API documentation, and the excellent Mark Volkmann website, and that will probably be enough. An "industrial strength" book on Java (including various compilation and deployment techniques) will help you much more than a book on Clojure.
If you have never programmed in any sort of Lisp at all, then I can almost guarantee that this book on Clojure will not be enough to get you fully "up and running" with Clojure. Most certainly you will learn how to write small scripts and games like the ones demonstrated in the book, but you will probably start to feel the weakness of this book as soon as you want to build something larger.