Most Helpful Customer Reviews
Programming Clojure based on 0 ratings. 2 reviews.
I've tried to learn Clojure a few times using online tutorials and blog posts. If, like me, you're from a background other than Java, Lisp, or Functional Programming (any of which might give you a jump start on learning the Clojure language), bits and pieces of information online aren't enough to immerse you in the language and its paradigms. Programming Clojure is a perfectly structured introduction to the world of Clojure and strikes a balance between explaining general Functional Programming concepts, Lisp syntax, and general usage of the Clojure language itself. Mr. Holloway litters throughout the book plenty of real-world example code to bridge the gap between theoretical and the actual. For me, this book nailed its audience with uncanny accuracy. If you're coming from an imperative, object-oriented programming background, this book is perfect for diving into the world of functional style and limited "side effects." The language is growing and changing on a daily basis. My only complaint of this book is that it doesn't seem to indicate which version of Clojure it covers, and doesn't tackle "futures" and "promises" which suggests it's a 1.0 book. I had to do some online reading to get caught up with the latest features of the language once I had completed the book. Still, I don't think I could have jumped into the world of Clojure without the help of this book. It was worth every penny.
Clojure is a programming language that runs on the Java Virtual Machine. The language is called a LISP dialect - it is not a full implementation of the LISP language specification (Armed Bear Common Lisp is a full LISP implementation on the Java Virtual Machine). The creator of Clojure intentionally broke compatibility with standard LISP in an attempt to make the language simpler to learn and simpler and more practical to use in real world applications. I believe he succeeded, though I am not an expert in LISP so don't weigh my support too heavily. This book is not for someone completely new to writing software, and neither is it a complete reference to the Clojure language. But for someone already experienced writing software in other mainstream programming languages, it's a good introduction to Clojure. If you're coming to Clojure without Java experience, I do not think it is a problem. You can skip the chapter on Java interoperability and work entirely in Clojure. The project management tool Lein for Clojure takes care of working with the Java Virtual Machine for you behind the scenes, you don't need to know Java. On the other hand, as someone that doesn't know LISP very well, I imagine knowing LISP would make the book far easier to understand. Because Clojure's syntax is so simple - no special rules for loops, no operator precedence rules, etc... you get the basics in a hurry and then jump feet first into using advanced features. It'll take half an hour to read a chapter and than another two days playing with the example code from that chapter to really understand the concepts. I recommend the book, I learned a lot and I don't regret buying it, but I would hope there would be something a little better out there.