alt text

David Heinemeier Hansson is a hell of a guy. He’s responsible for one of the best web development frameworks in the world, Ruby on Rails. He’s always been outspoken and a force to be reckoned with, but lately his writings have taken on the tone of an old man ranting at what the kids are into these days.

He’s inside his own Isolator, writing from his oak-paneled study.

But what evidence is there that he’s inside his Isolator? What follows is not an attack, but an attempt at a broad analysis of the character of his recent writings.

His recent post on what he thinks is ‘Dependency Injection’ has been rightly prosecuted as an ill informed and at worse deliberately disingenuous piece of self oriented propaganda.

Nat Pryce, who wrote the original paper, which spawned the ‘only mock types you own’ quote that DHH misappropriates, said:

The “only mock types you own” comes from a paper about jMock, which was a port of to Java of … a Ruby library (and the design style that went along with it). DHH doesn’t know what people were doing in Ruby before he started using it.

DHH’s Dependency Injection post is only the most recent crystallization of a slow and insidious change in his approach and language he uses. His posts are filled with deliberately charged and dismissive language like (emphasis mine):

  • Getting hyper about hypermedia APIs. This post finishes with DHH equating Hypermedia APIs to WS-*, which suggests he might not understand either beyond a vague surface level.

    According to hypermedia lore, you will be able to willy nilly change your URLs without needing to update any clients.

  • Put chubby models on a diet with concerns

    It doesn’t have the run-time mixin acrobatics nor does it have the “thy models shall be completely devoid of logic themselves” prescription

  • Pattern Vision

    Go deep enough and the pattern vision turns into articles of faith. […] Turning patterns into articles of faith takes them out of the realm of rational discussion. Code either adheres to the holy patterns or it doesn’t. If it does not, the programmer must first repent, say his 25 rose-delegations […]

As a writer, he’s trying to position himself as seemingly a rational and sane voice illustrating a demon filled world of superstition to a dumb and sheep like congregation.

His position seems more a stance of anti-intellectualism.

I’ve seen people suggest alternate ways of building Rails apps, only for DHH to dismiss it, and then when challenged make his rallying cry of ‘Look at the code! Look at the before and after!’ and then fail to produce any counterexample himself.

DHH also wrote a post about The five programming books that meant the most to me, a list of which coincidentally the most recent book is from 2003. This list is startlingly missing any of the important recent thinking on Software Design, most excellently lead by Growing Object Oriented Software, Guided by Tests.

But then, this shouldn’t be surprising since DHH is against keeping books he’s read:

There were other tweets he made around that one, where he makes further statements about getting rid of books you’ve read, but it’s impossible to find them using Twitter.

This is a shame, if only because the re-reading of great books is like having conversations with the great minds of the past. You learn something every time you re-read them, or at least you could if you didn’t trash them after reading.

It’s easy to say that DHH is becoming more and more out of touch with the realities that people face building software systems in the 21st century, or applications that aren’t Basecamp, but there is evidence to support that he is.

It could be said, that he’s so busy attacking any attempts to modernize software development using Rails as ‘dogma’ or ‘the resurgence of Java pattern vision’, that he’s lacking the ability to introspect on himself, and ask himself the questions about his own cherished beliefs.

When all is said and done, I still respect David greatly, and we are haircut brethren since time began, I just wish he’d stop the attacks, stop being dismissive and read some new books.

Discuss, upvote, or do whatever the hell you want on HackerNews.