Don’t Hate The Pickaxe
Posted on January 8th, 2008 in Books, Opinion, Ruby |
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.
17 Responses
Zed is right on the money on this one.
The “Pickaxe” book was written by someone who simply does not grok Ruby. It is a gross and wordy tome written by a consultant for the sole purpose of generating revenue for a consulting business.
While it became out of date rather quickly, Matz’s book on Ruby captured the spirit of Ruby and inspired the reader.
It would have been a good thing if Matz had been able to author his style of book, the “K&R” of Ruby. Maybe some of the original Japanese Ruby contributors could have worked together on this book.
Maybe with 1.9/2.0, Matz & close friends will be able to do this. And the Ruby world will have a proper book that captures the spirit of the latest Ruby. One can hope “-)
I know the first Ruby book I read was the pickaxe and I loved it. Those class examples were suited, I believe, for someone transitioning from Java (as I was). Maybe the 3rd Ed. will get rubyized.
Also my first Ruby book and it provided genuine insight, as opposed to when I was learning C++ and bought Stroustrup’s book. In fact, I ended up buying most of the Pragmatic books and as a Java developer myself, I think it’s the best collection currently available.
I’m definitely one who finds the pickaxe book massively overrated. It just feels really sloppily constructed compared with some of the giants in its genre (such as “Programming Perl”, which is a fantastic book: carefully written, funny, with helpful examples, and studded throughout with tidbits of unix history and culture).
The examples in the pickaxe are definitely the worst part of it for me, but the supposedly “famous” tutorial is also really limp.
Still, Ruby books on the whole are not exactly stellar: I do like David Black’s “Ruby for Rails”, and “The Ruby Way” looks interesting (haven’t read it properly yet), but “Rails Recipes” and “Rails Cookbook” have both proven to be very disappointing purchases. In a funny coincidence Zed writes the foreword to “Rails Cookbook”, and essentially describes how great the original Perl Cookbook is/was, whilst “hoping” that the current book would be of comparable quality. But in reality it’s so far from being the book that Zed hopes for that it’s not funny…
Paul
I’ve said before and I’ll say it again: Pickaxe is overrated. You only have to look at other similar titles for other languages to realise that.
I think the reason Pickaxe got away with it is the number of Ruby books at the time of its initial release was quite small.
Pickaxe is half ruby documentation and half sloppy tutorials. Waste of time and money.
Pointing to the popularity of a book is irrelevant as we all know ‘the masses’ are idiotic.
Ok, the Pickaxe is not the best book around. But remember: it is one thing to write about an american language, having english speaking authors and community. It is something else having japanese authors, community and source codes/examples. I am japanese and I challenge anyone to try it.
Now I don’t want to be apologetic. I wrote a book once and it is no easy thing. Try writing a book for a virtually non existant market and odds are you’ll only be able to do so much. It was 2000 remember?
Could it be better? Sure, but that’s why you have choice. I particularly prefer The Ruby Way. But then again, it doesn’t make the Pickaxe less important. Without it probably there would take more time for Ruby to get in America. Unless you’re willing to speak japanese
I have the first Pickaxe book and I genuinely didn’t like it. I think mainly because I didn’t really like the jukebox examples. I shelved it. I didn’t paint Ruby with what I thought of that book though. There are other books out now that are better I think. The Pickaxe was first and so it is on the altar of Ruby like it or not.
I like the Pickaxe book. Do I think it’s perfect? No. Can I name any “perfect” Ruby books? No. Come on - give Dave a break. He had enough nerve and fortitude to go out and write this book long before Ruby was so popular. And, let’s face it, he definitely helped make Ruby popular. It’s easy to sit back and criticize but I’d like to see the books from the commentators above. Would they be “perfect”? Absolutely not. I learned a lot from Dave’s book and I like it. I do agree with Dennis that having more than one book is good and I particularly like “Ruby for Rails” by David A. Black. By the way Dennis, thank you for writing this blog post. It’s nice to see someone coming to Dave’s defense.
“Pointing to the popularity of a book is irrelevant as we all know ‘the masses’ are idiotic.”
And you’re calling Rails developers elitists?
Weren’t you defeated at Waterloo?
My point stands. Popularity is not an indicator of quality.
Hitler was popular - he wasn’t exactly the greatest leader of the past Century.
Treating Dave Thomas like a saint is ridiculous. He’s a businessman who saw an opportunity to release an English-language book on a subject he believed would take off.
Even his making of the first edition free was nothing more than a marketing tool to explode the uptake of Ruby and therefore increase sales of the second edition.
OK, you win - happy now.
This seems to be like a good topic to generate some discussion. I’m pleased to read all these comments.
@Karmen - I don’t know much Java, so I honestly wouldn’t know where this would apply. Maybe there’s some truth to this, since the Pragmatic Programmers released a book later on called Rails for Java Developers, so maybe Dave was gearing towards the Java audience.
@pjm - Which tutorial are you talking about? if you’re referring to the Karaoke Jukebox machine Zed mentioned in his rant, then I would agree with you in that part. But that’s just a segment of the book, not everything. I don’t think there’s a “perfect” programming book for any language, which is why I suggested reading more than one book on any given subject, to compensate missing language features from one book to another.
@Doug Bromley - As others have pointed out, Ruby was virtually non-existent in the minds of programmers in the U.S. before Pickaxe. There are a lot of folks who learned a lot from this book (as shown by my E-Mail to DHH). And popularity doesn’t equal quality or greatness at any level, but I doubt the “masses” are “idiotic”. Well, not all of them, at least. In no form I’m treating him as a saint. Can you blame him for getting into an untapped market to make money? I would’ve done the exact same thing. It’s no coincidence Ruby experienced an increase in usage ever since his book came out.
@AkitaOnRails - Interesting that you’ve written a book. I know that it’s not easy, especially for a virtual foreign programming language. I wasn’t trying to be apologetic either. I’m just trying to point out that the Pickaxe book isn’t the piece of garbage everyone’s making it out to be recently.
@Robert - If you base your opinion on the book thanks to that particular segment, I don’t think you’re looking at the full picture. Like I’ve stated already, that segment was confusing, to say the least. The rest of the book was pretty solid, in my opinion. After I read Pickaxe, I went on to other Ruby books. But that didn’t take away the fact that most of my Ruby learnings were thanks the Pickaxe book. I’m glad you went on to other books, though, and didn’t shelf the language just because you didn’t like one book on the subject.
@Ken - I’m glad you agree with my points. I didn’t write this post to defend Dave. I just wanted to give my opinion on the book, because I think it’s a good base to learn Ruby. Of course, it’s my opinion, and as you can see, a lot of people have their own.
@an idiot - I’m guessing that’s not your real name… I’m not sure what your opinions are, but thanks for stopping by, I guess.
Just to repeat my comments from DZone for a more complete public record..!
You said: I don’t think a lot of people had their negative feelings bottled up or something for so long, only to unleash them when a high-profile name came out and said it first.
Actually, that’s precisely true in my case. As I have both a competing book, and the most popular weblog in the Ruby sector, it was a politically correct decision for me not to bash the Pickaxe, but I did so after Zed’s outburst simply because a big outburst is a good way to seep out true opinions in the backchannel
The Pickaxe is to be applauded for being still the only true Ruby “reference” book, but it’s still not a particularly good book overall and acted as a major motivation for mine as the Pickaxe is next to useless for beginners.
Yep, I found the “acclaimed tutorial on using Ruby” (as it’s advertised on the pragprog web site) to be quite deflating. Rather than highlighting those aspects of Ruby that could distinguish it from other languages (including, but not limited to, ease of use, clarity, brevity, use of blocks) we get a slow amble involving a semi-regular return to a boring jukebox example. And “here’s how you do it in Java” comparisons…
To be honest I’d forgotten that the “tutorial” was so diffuse. It looks like the first *part* of the book is considered to be the tutorial, which gets us to page 173!
@Ken: I’m certainly not saying that I’d be able to write a decent book on ruby. That is in no way implied by what I wrote above. But when everyone else is fawning over a book/author a little balance isn’t necessarily a bad thing. As above, (I’m a migratory beast, moving from Perl), when I saw reviews stating that the pickaxe was as good as, or even *better* than “Programming Perl” I ordered it immediately. Sadly it’s not even in the same ballpark.
So I suppose what I’m trying to get across here is that by no means is the pickaxe a *bad* book, it’s just not the great book that I have consistently been told it is. Others evidently have similar views.
It’s hard to find a book on Amazon that doesn’t mostly have 5-star reviews, so that data is not very useful.
The Design Patterns in Ruby is great, at least for someone coming from Java. I hope Russ Olsen writes some more books.
I would like to add as well that it was the first edition of the Pickaxe. I have not looked at the second edition and I am sure there are some changes. I do not base a language on the boos I read because those are filtered through the author. I tend to get books to get overviews only.
For what it is worth, I’ve always found the pickaxe book a good reference, maybe the best one around, but I have to say that “the Ruby way” was the book that really taught me Ruby.
Russ
PS - If Dan keeps saying nice things like that, I guess I will have to write another book.