Rob's Reviews > The Joy of Clojure
The Joy of Clojure
by Michael Fogus (Goodreads Author), Chris Houser
by Michael Fogus (Goodreads Author), Chris Houser
Rob's review
bookshelves: technical, 2010, clojure, own, 2011, 2012
Mar 22, 12
bookshelves: technical, 2010, clojure, own, 2011, 2012
Read from July 07, 2011 to March 22, 2012, read count: 2
In the realm of technical, programming-related, computer science-type books, The Joy of Clojure is a bit of an oddity. And this is a very good thing.
WHAT THE BOOK IS NOT: The Joy of Clojure is not a beginner's introduction to the language. The Joy of Clojure is not a glorified appendix of methods and syntax. The Joy of Clojure is not a "cookbook" or a "how-to" or an "FAQ". The Joy of Clojure is not an explanation on how to shoe-horn your Java code into (some (graceful [parenthetical syntax:])). The Joy of Clojure is not a dry or sterile technical manual.
WHAT THE BOOK IS: The Joy of Clojure is as much a philosophical text as it is a survey of the language. The Joy of Clojure embraces the language's own flexible nature and describes itself in that way. The Joy of Clojure has a sense of humor. The Joy of Clojure expects a little work from you (but is willing to lend a hand along the way). The Joy of Clojure respects the baggage that you bring from your other programming languages, but expects you to check those bags at the door. The Joy of Clojure wants to make you a better programmer, not a Clojure programmer.
So... why 4-stars? I seldom give out 5-star reviews—I reserve those for books that completely blow my mind. While this one was a real eye-opener, my lid did not pop fully and totally off. Why not? Partly because I'm coming into Clojure as an outsider. It isn't a book for Clojure beginners—you could be a Clojure novice and get a lot out of this book, but I believe you would need a little more background in Lisp (its syntax can be a bit off-putting to outsiders and novices... and they even come out and say this in the book). How to get that 5th star...? A "chapter 0" for the complete novice? or maybe an appendix that can help that novice wade through some of the more esoteric-feeling elements of the language.—i.e., folks such as myself that are unfamiliar with Clojure (and/or Lisp in a more general sense [viz., I haven't looked at/used Lisp in probably... 10 years?:]) may find the language's syntax a bit... opaque? oblique? There's a learning curve with every language, I suppose but there are certain things in Clojure that look FUNDAMENTALLY WRONG to someone accustomed to a language like JavaScript or Java. The onus is (of course) on the reader to embrace these things (i.e., "Who is the one that opened the book and wanted to learn something new?") but it's sometimes easy to get lost in these little details.
I would absolutely recommend this to anyone I know that had an interest in Clojure and/or functional programming.
WHAT THE BOOK IS NOT: The Joy of Clojure is not a beginner's introduction to the language. The Joy of Clojure is not a glorified appendix of methods and syntax. The Joy of Clojure is not a "cookbook" or a "how-to" or an "FAQ". The Joy of Clojure is not an explanation on how to shoe-horn your Java code into (some (graceful [parenthetical syntax:])). The Joy of Clojure is not a dry or sterile technical manual.
WHAT THE BOOK IS: The Joy of Clojure is as much a philosophical text as it is a survey of the language. The Joy of Clojure embraces the language's own flexible nature and describes itself in that way. The Joy of Clojure has a sense of humor. The Joy of Clojure expects a little work from you (but is willing to lend a hand along the way). The Joy of Clojure respects the baggage that you bring from your other programming languages, but expects you to check those bags at the door. The Joy of Clojure wants to make you a better programmer, not a Clojure programmer.
So... why 4-stars? I seldom give out 5-star reviews—I reserve those for books that completely blow my mind. While this one was a real eye-opener, my lid did not pop fully and totally off. Why not? Partly because I'm coming into Clojure as an outsider. It isn't a book for Clojure beginners—you could be a Clojure novice and get a lot out of this book, but I believe you would need a little more background in Lisp (its syntax can be a bit off-putting to outsiders and novices... and they even come out and say this in the book). How to get that 5th star...? A "chapter 0" for the complete novice? or maybe an appendix that can help that novice wade through some of the more esoteric-feeling elements of the language.—i.e., folks such as myself that are unfamiliar with Clojure (and/or Lisp in a more general sense [viz., I haven't looked at/used Lisp in probably... 10 years?:]) may find the language's syntax a bit... opaque? oblique? There's a learning curve with every language, I suppose but there are certain things in Clojure that look FUNDAMENTALLY WRONG to someone accustomed to a language like JavaScript or Java. The onus is (of course) on the reader to embrace these things (i.e., "Who is the one that opened the book and wanted to learn something new?") but it's sometimes easy to get lost in these little details.
I would absolutely recommend this to anyone I know that had an interest in Clojure and/or functional programming.
Sign into Goodreads to see if any of your friends have read The Joy of Clojure.
sign in »
Quotes Rob Liked
“The apprentice avoids all use of Java classes. The journeyman embraces Java classes. The master knows which classes to embrace and which to avoid.”
― Michael Fogus, The Joy of Clojure
― Michael Fogus, The Joy of Clojure
Reading Progress
| 06/05/2010 | page 19 |
|
5.79% | |
| 06/05/2010 | page 49 |
|
14.94% | "made it through chapter one (with some delightful surprises)" |
| 07/07/2011 | page 3 |
|
1.0% | "Diving in for re-read #1 (now that it's a "real published book"...) -- 1st page after the introductions etc." |
| 07/18/2011 | page 32 |
|
10.0% | "(let [that "sink in"] (println "before moving on"))" |
| 07/19/2011 | page 36 |
|
11.0% | "next: "Leveraging Java via interop"" |
| 07/21/2011 | page 39 |
|
12.0% | "...next: Namespaces" |
| 07/22/2011 | page 43 |
|
13.0% | "Finished up Ch. 2... and/but this is one I'll need to re-read a few times." |
| 08/03/2011 | page 51 |
|
16.0% | "REPLism" |
| 09/27/2011 | page 76 |
|
23.0% | "Scalars! (last night I dreamed of Clojure code that looked like a dinosaur's jaw - WORLD'S COLLIDING)" |
| 09/27/2011 | page 81 |
|
25.0% | "(about to dive into 'Big-O' a la Fogus/Houser)" |
| 10/09/2011 | page 97 |
|
30.0% | "Working through this book for the second time... one data structure at a time." |
| 12/14/2011 | page 125 |
|
38.0% | "I'd like to think pg. 113 of Joy of Clojure is where I made my mark / cc @fogus" |
| 01/25/2012 | page 141 |
|
43.0% | ""Ah... Recursion: the whipping boy of functional concepts."" |
| 02/01/2012 | page 164 |
|
50.0% | "in the midst of macros" |
| 02/02/2012 | page 165 |
|
50.0% | ""...in Lisp the distinction between DSL and API is thin to the point of transparency."" |
| 02/02/2012 | page 169 |
|
52.0% | "(What? I've been reading about Clojure while I wait for these Grails apps to start up...)" |
| 02/02/2012 | page 177 |
|
54.0% | "...is recognizing now that Groovy has some anaphora in it." |
| 02/23/2012 | page 189 |
|
58.0% | "Re-reading the sections on multimethods and Yegge's UDP, I am reminded of the kinship between Clojure and JavaScript." |
| 03/15/2012 | page 247 |
|
75.0% | "Refs &c." |
| 03/15/2012 | page 255 |
|
78.0% | "Agents &c." |
| 03/22/2012 | page 277 |
|
84.0% | "IIRC: these 2 final chapters were great - really looking forward to (finally) reading them in their final form." |
| 03/22/2012 | page 283 |
|
86.0% | ""Implicit realization of the first 32 Mersenne primes through chunked sequences will finish long after the Sun has died."" |
| 03/22/2012 | page 285 |
|
87.0% | ""...memoization is a personal affair, requiring a certain domain knowledge to perform efficiently and correctly."" |
| 03/22/2012 | page 289 |
|
88.0% | ""Again we’ve made matters worse and have spread the problems over the surface of the entire code."" |
| 03/22/2012 | page 292 |
|
89.0% | "Tempted to plow through and finish reading tonight... but sleep beckons. And/but... and/but..." |
| 03/22/2012 | page 293 |
|
89.0% | ""When a language is built from the same data structures that the language itself manipulates, it’s known as homoiconic (Mooers 1965)."" |
| 03/22/2012 | page 296 |
|
90.0% | ""...English isn’t good for a DSL."" |
| 03/22/2012 | page 303 |
|
92.0% | ""...design patterns have come to be viewed as goals in and of themselves, which is likely the source of the antagonism aimed at them."" |
Comments (showing 1-3 of 3) (3 new)
date
newest »
newest »
message 1:
by
Ed
(new)
-
added it
May 17, 2011 12:57pm
Agreed about this not being a beginners book. Having only written imperative code since college, it's a hard slog at times.
reply
|
flag
*
Ed wrote: "Agreed about this not being a beginners book. Having only written imperative code since college, it's a hard slog at times."Stick with it Ed! It's very much worth it. I don't (get to) use Clojure on a day-to-day basis for my work, but I feel that I learned a great many valuable lessons about programming from this one just the same.
Hi Ed,It hard to deny that Clojure is a huge change from what you might be used to. I'm probably biased (just a tiny bit), but I think it's worth the pain. Even if you never use Clojure, I hope that you'll be able to take something away from Clojure that might use to good effect in your day job/personal projects. Regarding the book itself, I'd be happy to try and clarify anything that you find particularly opaque.
Good luck and thanks for reading!
