If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.
–Antoine de Saint-Exupéry
This is an interesting book.
It’s interesting because it doesn’t try to be another Clojure tutorial. There are books about that already. Instead, it tries to capture the fundamental ideas behind the language. It’s much like what the language author Rich Hickey does in his talks: he doesn’t try to convince people to use his language because it’s “amazing”.
Instead, he talks about essential ideas, like immutable data structures, concurrency, state, and identity, only presenting Clojure as something that embodies those ideas and concepts.
So it’s very much like a Clojure book that really “gets” the language, but like the criticism on HN I think some of the wording is a bit vague. Or not vague, but sometimes very detailed and other times quite stilted. I think this reflects more the language design itself than ztellman’s writing, since at times I get the feeling that the language design itself can be a bit vague. It was, after all, designed by an experienced Common Lisp programmer. Similarly, this book is written by an experienced Clojure programmer, and in both good and bad, it shows. Mostly good.
Sadly, I cannot offer any better criticism than that, but I look forward to reading the whole thing once it’s finished.
Thank you for your thoughts. I’m glad you think it’s worthwhile, despite any shortcomings.
I’m trying to interleave abstract and concrete advice, and it’s pretty difficult to strike the right balance. I’m certainly not completely happy with the chapter, as it stands. I think the vague and stilted elements reflect at least a little on my writing, but they’re impossible to avoid entirely unless I take out all the abstract bits. Maybe I’ll have it figured out by the time I finish the other chapters.