By Zed A. Shaw

How To Backpedal And Boost Like A Pro

Before I get into Mark's weird comments, I would like to suggest people take a look at Think Python and tell me what you think. Is it a good book for beginners? Did you learn Python from it? Programming? I suspect it may be a good replacement book for Mark's and would like to start getting it out there to people who are interested in learning.

Now on with the show.

I find it funny that some folks have tried to say I'm too hard on Mark Pilgrim, despite the fact he's just as outspoken and ranty cursy as me. I mean, double standards much? Dude is a Class-A jerk who's attacked people in the past, and I have yet to run into too many people who think the guy is that great.

In a way, I kinda like that, like a rant brother in arms. But he's seriously got some thick rose colored glasses on when it comes to his own value and the quality of his writing.

Let's dissect a comment he posted on reddit, in the spirit of his dhh translation.

(Note: I haven't RTFA, because I assume it wouldn't be a good use of my time.)

I have to pretend to be a bigger man than Zed so that people will think I'm more important and listen to me. If I act aloof to his comments then everyone will assume strength and virility in my words.

It's a guy thing.

The ironic thing is that I have been thinking about rewriting "Dive Into Python" for several months now, but not because of Zed or any other detractors.

When I say, "ironic" what I actually mean is "lie". You see even though I said, "@diveintomark @zedshaw Completely rewrite the first 3 chapters of a book I haven't touched in 6 years? Yeah, I'll get right on that." I actually do plan to get right on that. Oh, but not because Zed kicked my shit in like a pro. He doesn't matter remember?

Here's the thing: "Dive Into Python 3" is a great book, miles better than the original "Dive Into Python". 10 years of writing experience will do that for you (or at least it should, if you're focused on becoming a better writer).

My head is so far up my own ass smelling the insane number of roses up there that I have no idea everyone hates my fucking book. My book is exactly as good as all the standards I've written. They're really long and verbose and have so much information in them that they can't help but be great just by the sheer weight of their prose.

But hey, Dive Into Python 2 is also still a great book, even though Dive Into Python 3 is a better book, but 2 is still great, although 3 is better. They're both fucking awesome because, I am absolutely fucking awesome.

Anyway, I'm really proud of how well DiP3 came out. The only problem is that no one is using Python 3. I took a gamble last year that large libraries would port to Python 3 while I was writing. That didn't happen. I think it's pretty clear by now that that's not going to happen anytime soon. Everyone who gambled on the glorious non-backward-compatible future got burned. Given my experience with HTML, you'd think I'd learn. Ah well.

I have no idea how technology adoption works, but I swear HTML5 will be different. Big companies are paying me to make sure it does and to also not give a shit what you want. You're gonna love it.

So here we are, with this great book on a language that no one uses, and a good-but-past-its-prime book on a language that evolved for several years while I was paying attention to other things. DiP is still a good book... for learning Python 2.1 or so. Python 2.7? Not so much.

I love this word "great". If I keep saying it over and over everyone who reads it will believe it! It's like FOX News! Glenn Beck! My heroes!

So I had this idea a few months ago -- and the WebCore guy whom I had dinner with at ConFoo can back me up on this -- I had the brilliant idea of backporting DiP3 to Python 2.7.

Look, I got proof that Zed didn't get any of this started by stating the obvious. I also thought my original book was a piece of shit albatross around the neck of the Python community and my buddy will back me on it. Go ask him. I totally thought it was crap. I mean good crap. Great crap even, but yeah I also needed to rewrite it.

Some of the chapters would backport with 0 changes (like regular expressions, which ported from DiP to DiP3 with 0 changes). Other chapters, like "distributing Python packages," would be complete rewrites, because all the awesome package tools that I really wanted to write about in DiP3... hadn't been ported to Python 3.

I can't admit that using ODBC as the learning example for three chapters of my book was a giant mistake. That'd be too much of a bruise to my ego to, like, actually fucking admit I was wrong. So instead I'm just going to sidestep that whole, "Hey sorry guys, I should have rewritten it long ago."

Tl;dr Zed may get his wish of a diveintopython2.org, but despite his douchebaggery, not because of it.

Oh look. I know memes! I put a tl;dr in the most useful place so that people who have read the article can find it and realize they didn't need to read the article to find out I'm a giant pot calling the kettle black.


Now, whether you like Mark or not, or whether you agree with me or not doesn't matter. The plain truth is beginners find this book and get turned off from Python. If you claim to actually care about usability, user experience, adoption of the language, or any of the modern concepts programmers care about then you'll at least stop giving this book to beginners.

As a book for "experts" I also think it's a piece of crap. It's verbose, teaches all the wrong things, takes too long to get through, and doesn't cover important parts of a language early enough.