I just happened to notice that David Heinemeier Hansson, the creator of Ruby on Rails, learned Ruby through hate driven development. Here’s his answer when asked how he learned Ruby:
I learned Ruby by programming in anger. Attempting to make something real. Not just a toy program.
August 10, 2009 at 1:01 pm
It’s possible that David is using “anger” to mean “for something serious”. For instance, I’ve toyed with Haskell a lot, but I wouldn’t say I’ve used it “in anger”. Your definition of hate driven development doesn’t seem to suggest that one would keep using the underlying technology for years afterwards, as David has.
August 10, 2009 at 1:26 pm
I think you’re reaching a step too far here, unless I’m just missing the irony. Programming in anger has nothing to do with hate. It’s that you’re annoyed or displeased with the state of things and you really want to do something about it. Thus, it requires that it’s something real that actually matters to someone. Not just a toy project.
August 10, 2009 at 2:09 pm
I mean HDD mostly in the sense of using some kind of negative emotion to drive progress, so this fits under an expansive definition. I definitely don’t define HDD as hating the platform you’re using but rather the situation that you’re in. Sometimes you’re at that point where you can either do other things or push through, but you can’t casually work on whatever it is you’re working on. HDD is about pushing through, to the extent that it’s not just a joke.
August 10, 2009 at 2:39 pm
DHH used HDD to hunt for his hunch, HDD hated DHH, how he hurt his haunch. DHH haunted HDD, a hint of ADHD, hath me. How many HDDs hurt DHH with ADHD and a hunch?
(OK, that could be cleaned up a bit more, but I had only 5 minutes to spare….)
August 11, 2009 at 9:00 am
Rafe, I think Adam and DHH are right on this point. See “Ant in Anger”. Perhaps this is the best explanation of the phrase I could find.
August 11, 2009 at 10:04 am
That reminds me of a friend in college who always used to say, “Don’t hit me in anger.”