Don't Hate The Pickaxe
Well, well, even a week after Zed Shaw's infamous rant on the Ruby and Rails communities, all the talk generated by it continues. While it has died down enough, I feel that the repercussions of the rant are still going on. And I'll be writing about one I've been disturbingly seen more and more in the past week.
One of Zed's problems with Dave Thomas was due to his book, Programming Ruby (or "Pickaxe" - weird how some people know that book only by the Pickaxe name). Here's one of the paragraphs he wrote about that particular book:
That’s right, take a look at the original topics and you’ll see that Dave’s book is nothing but a giant me-too book that seems to appeal to the average OOP coder of 2001. However, the average OOP coder using Java, C++, or C# wasn’t doing much meta-programming then, and what Dave presented was nothing more than a book that said, “Hey look, you can do all the stuff you’re doing now, and make NO money at it.”
He goes on to explain a lot of the shortcomings of the book, like the fact that the chapter about classes was demonstrated by designing some sort of Karaoke jukebox machine. I do agree with these specific points Zed makes. I remember reading the book for the first time, and just skimming the classes chapter because it felt awkward that these very important terms were being explained this way. It was also confusing as well. I just read the basics (how to create classes, inheritance, access control, etc.) and skipped most of it. Also, failing to include one of Ruby's strong suits (which is the ease of meta-programming in this particular programming language) seems very weird.
However, this isn't what I wanted to talk about. My issue is that after Zed pointed these things out in his rant, I've been seeing a lot of negative comments towards this book - something I hadn't encountered before. In fact, I bought this book because everywhere I read on the Internet, it specified that this was the book to own on Ruby. In fact, let me show you a screenshot of the current reviews this book has on Amazon.com:
See anything interesting there? Yeah, there are only 52 reviews, but 43 of those reviewers - a whopping 82.6% - gave this book either four or five stars. To me, for a supposedly "shitty" book (as I've read a lot of people call this book in the past week), this is a rather high positive rating.
So, are these people honestly criticizing the book by their own will, or simply just want to "follow the leader" and bash Dave's book without thinking for themselves? I find it extremely odd that a lot of criticism is aimed towards this book in such a short period of time - the past week since Zed's rant. Were people scared or something of giving their honest take on this book for fear that the Ruby zealots would find out where he/she lived and crucify them or something? Something just doesn't seem right.
Now, while I've expressed before how much I enjoy the work of Dave Thomas and others who publish the Pragmatic Programmers books, do know that I'm not biased in any way, shape or form. I'm probably one of the most objective guys you'll ever meet. If I think something sucks, I'll gladly say so, as long as I can back my words up. But honestly, I don't think the Pickaxe book sucks. Far from it. This book has helped many (myself included) find out about the awesome features of Ruby (well, most of them, at least). To ignore the fact that this book helped jump-start Ruby usage in the in the Western Hemisphere is really a disservice to it.
I think Programming Ruby is an awesome book and an excellent reference to the Ruby language. As a book to learn the language, I wouldn't count on it to be the "be all to end all" Ruby book. To those who think there are programming books like this, you're totally wrong. In my short programming career, I've come to know that one book for a specific language or technology isn't enough. Obviously, that doesn't mean you should buy all the books on a particular topic. But more than one, at most two or three books, should help you greatly. No two authors think alike, and there's always some stuff missing from one book that another has, and vice versa.
So to all those newly-minted Pickaxe "haters", I suggest you take an honest look at yourself and think if you're really hating this book because you didn't like it. If you didn't like it from the get-go, good for you. I hope you find another book that helps you learn Ruby. But leave the rest of us who learned a great deal from this book alone. We don't need a Zed-wannabe running around this joint.
UPDATE: After I posted this, I immediately E-Mailed David Heinemeier Hansson (yes, the creator of Rails), because I was curious on how he learned the Ruby language. I was surprised he responded in mere minutes, and his response was even more surprising:
I learned Ruby in large parts from the original Pickaxe and thought it was a great book. No, it didn't cover everything. And I picked up some metaprogramming tricks form The Ruby Way, especially Chapter 5, as well. But I was very happy to have it at the time.
Seems like David agrees with my thoughts on this subject. I bet that most of the big names in the Ruby world also learned the language from Dave's book. I thank David for that quick and honest response.