DHH’s statement about the best OSS tools is a little strange. I’m a Python developer and I use Emacs as my editor/IDE. One of the things I love about the combination is it works almost identically on Windows, Mac and Linux.

I switched to OSX about 2 years ago, but not because of the “great OSS tools.” I switched because I got tired of Windows and felt OSX had surpassed it for the features I cared about. It’s great that it has a strong enough developer community that popular tools get ported nicely to OSX, but it’s not like they work better under OSX. Last time I checked C-x C-s still ran save-buffer on all platforms in Emacs.

I find the extremist ramblings of the Ruby/Rails crowd a little tiring. Yeah, Ruby is a cool language and Rails is a nice framework, but it’s not like they cured cancer. When I chose Python over Ruby a couple of years ago, one of the big reasons was the community - the Python guys seemed more interested in getting things done and helping others along the way. The admittedly vocal minority in the Ruby/Rails crowd seems to be interested in hearing themselves talk.

Sorry, but I agree with DHH here. I’ve been working on Windows-specific projects for a while now, and I have to keep a PowerBook handy just to maintain my sanity. It’s not that you can’t do cool things on Windows, it’s just that there really is a stigma that comes with being a Windows developer, and now I know why.

It was all C# at work for about a year. Then, suddenly, it all changed. For the last 6 months I’ve been working in a different, less illustrious, decidedly Windows-only language… one that is turing complete and which I know full well can “do anything.” But, still, I am downright embarrassed to tell people which language I’ve been working in.

That’s right. I’m embarrassed to admit that I work in VB.NET. That’s the stigma of being a Windows dev right there. At some point some major project in a bass-ackwards language is going to come along, and you’re not going to want to highlight it on your resume.

If I didn’t hack Ruby and Scheme and some more bare-metal code on OS X I would have approximately zero geek points left at the end of this latest stretch of my career.

I wish I could give you a standing ovation for this post, and that’s not something I say lightly. The one thing that has always upset me about most geeks is their ridiculous attachment to one thing or another. When I was writing simulation software we used QNX because it’s a real-time OS, and hardware drivers were written in C. When I was writing a 3D graphic software I used Windows because every video card supports windows, and the code was C++. Now I write web-based internet applications, so I use Ubuntu at work, and work all day in PHP and JavaScript.

You do the best job by using the best tool for that job. Or to put it more bluntly, why the hell would you use a screw driver to bang in a nail when there’s a hammer right in front of you?

Excelent post.

However, I have to wonder what inspired you to write it.

You know you nailed it with this post. Making mincemeat out of DHH is no small feat. But throwing down the ‘d-bag’ gauntlet? Legendary.

Alan Turing postulating the idea of ‘univeral computing’. It doesn’t matter if you are using vaccuum tubes, or silicon, or germanium, or qubits or DNA. A bit is a bit is a bit. Your preference of ‘developer tools platforms’ matters even less.

Someday we’ll get past hardware and software altogether and hack the universe’s own capacity for computation. After reaching this ‘singularity’ we may have genuine reason for this sort of neo-tribalism! But until then we should be working together on solving the big problems at hand.

His statement sounds EXACTLY like something IBM would have said in 1985. Only a mindless fool would have cheered such arrogance then and only an utterly braindead one would ever want to sound like IBM circa 1985 now.

The dumbest part about the statement is that what it also means that if you use OS X you have a lower burden of proof. What a great message! “If you use OS X you don’t have to be as good as the guy down the street using windows.” How terrifically insulting! I can’t imagine why I’d want to work somewhere that expects less of me because of the OS I use. Personally I favor results over tools. I don’t care if you use a twig and some bubble gum - if your app rocks then it rocks.

David Heinemeier’s comments just prove what I knew already… he’s not as smart as he thinks he is. He’s just like all the OSS zealots out there… the more they badmouth the alternatives to their choice, the more important and smart they feel. It’s just their nerd version of a bomb vest.

Being a douchebarge is about elitism, pure and simple. It’s no way to discuss the technical merits (or lack thereof) about anything.

You can have a strong opinion and still respect someone else’s. Know and respect thine enemy. Calmly explain how and why your viewpoints differ, and you might turn them into a friend.

Good article, Jeff. By the way, how long have you been using the term “douchebaggery?”

Click my link to see why I ask. :wink:

Great article! Sometimes I still lose myself finding the best platform for my work, until I realise that they’re all probably very similar (with minor differences), and I should just jump in and muck around first. I don’t mean this only in a software context, either.

"And that makes him kind of a douchebag.

Which also means when you’re using Rails and OS X, you’re using the platform of choice for douchebags."

I really hope you were trying to be ironic/funny here, I laughed so loud when I read that… it would suck if you really mean it =P

I thought it was well known that Mac users are douchebags, as so eloquently expressed by Charlie Brooker:,2006031,00.html (though he doesn’t use that precise term).

More seriously, I do find it odd that people who view Microsoft as ‘teh evil’ (these people usually spell it M$, another clear demonstration of douchebaggery) because of their ‘closed source’ mindset often seem to embrace Apple, despite Apple being the most closed and proprietary of the major platforms. I have a Mac at home (which I don’t use much) and several flavours of iPod and while Apple do make nice hardware, their love of DRM and closed platforms does make me a bit uncomfortable with their products.

Not your best post by a long shot, Jeff. Let’s look at all the people applauding you for calling David a douchebag. Right or wrong, do you see how much people enjoy watching you slam someone they don’t like?

So, let’s think about this for a moment. How is this post where you slam David and get a bunch of people to cheer for you different than David slamming Windows programmers and getting a bunch of people to cheer for him?

Let me guess: Because you’re right and he’s wrong? That seems dangerously thin, kind of like arguing that torture is ok provided you’re torturing bad guys. Being a Good Guy means being above whatever it is you accuse bad guys of doing. That’s called the Moral High Ground, and morality is orthogonal to being technically right or wrong.

I expect better from you in that respect.

Now on to Mac vs. Windows. What I often hear from Windows users are statements like “I take issue with David’s claim that, when it comes to computers and operating systems, there’s any “best” anything. In my considered opinion, they all suck. Sure, there are tradeoffs, pros and cons, strengths and weaknesses. But an objective best? It’s all relative.”

That’s what makes you a windows user: an ambivalence to the merits of one vs. the other, a belief that they are all more-or-less the same, so why not go with the cheaper one or the more popular one or the one they install at work.

That doesn’t mean you’re wrong, of course, but realize that the people who choose OS X do so because they (we, actually) don’t believe they are all more-or-less the same.

Just as we don;t believe (surprise surprise) that all programming languages are more-or-less the same. or that all web frameworks are more-or-less the same.

But guess what? With three billion people on the planet,w e are not all going to have the same perspective. Thank goodness for that.

To think the lines of code you write today will be around 5 years from now, or even 2 years from now is a naive thought…

Given the code bases I’ve seen, that sounds naive to me. Or you’ve only been exposed to really crappy code.

Oh, and try this on a few systems:
$ ident /usr/bin/* | egrep ’ 19[0-9][0-9]/’ | sort -u | wc -l

Wow - it is interesting - platform/tool zealots.

Attempting to prove the superiority of RoR by saying the other option brings a stigma doesn’t endear RoR as an option, merely that the other option may not be an option to continue with, the difference is subtle - and to do it in a confrontational, possibly offensive, manner only makes the option you’re attempting to champion seem less attractive.

And as for the “stigma”, dear Lord, I wish I knew ASP.NET, dozens of jobs come across my desk every week that I could go to. More .NET jobs exist here than Java…

Honestly, I can get a bash shell on any significant operating system (Cygwin works fine for me), and I can get Emacs for any platform. As far as I know, Vim runs on pretty much everything as well. With those I can develop anything I feel like.

I work just fine with Visual Studio, but I don’t really care about it or Eclipse one way or another. All that stuff is just personal preference anyway. And I’m not crazy about the Windows environment, but Gnome on Ubuntu is the only one of those I’ve ever really liked – the OS X environment doesn’t really float my boat either.

On the other hand, I love the combination of languages I can get in .Net. F# is the most productive language I’ve ever used (for me), and I quite like IronPython as well (among other things, it’s a great language to generate). Given this, it makes life easier to develop in Windows. If you prefer Ruby, or Haskell, or Arc, or some other language – cool for you. Go use whatever tools make sense for you and the language you develop in. And yes, I’ve tried Rails – I built out a decent-sized website in it. It’s a good environment for some types of things, but it would be pretty useless for what I’m doing now.

DHH isn’t an idiot for picking the tools he has – there are lots of combinations of tools that work for people, and the only way you can really fail is to refuse to ever take stock of the alternatives. But he is an idiot for thinking that nobody who uses a set of tools could possibly know what they’re doing.

Personally, I think you need to have serious self-esteem issues to be offended by DHH.

Besides, everyone knows that real programmers use butterflies:

Ha ha, I’m an old fogie, I haven’t been keeping up!

Ok, 3 billion with unique viewpoints and 4 billion (pick your insult) Windows/Mac/RoR/.Net users?


DHH and his ilk are a perfect example of what’s wrong with programmers. These are the people that spend more time arguing about platforms than writing code.

If you read the Google Groups posts, it seems that there is a lot of backpeddling on his part. I think he was expecting a rousing cry of agreement from the hordes of Mac/Rails users. Unfortunately for him, there are more windows developers in Massachusetts than Ruby developers world-wide.

“Still, is it necessary to paint with such a broad brush?”

Wait a second. Just because one douchebag vocally uses this combination, therefore all others who happen to use this combination are lowlifes as well?

And who’s painting with a broad brush?


How is this post where you slam David and get a bunch of people to cheer for you different than David slamming Windows programmers and getting a bunch of people to cheer for him?

Because DHH went out of his way to call a whole bunch of people incompetent just for making different technology choices. Is calling someone out for being offensive really equivalent to being offensive?

That’s what makes you a windows user: an ambivalence to the merits of one vs. the other, a belief that they are all more-or-less the same, so why not go with the cheaper one or the more popular one or the one they install at work.

What makes me a Windows user is not believing them all to be more or less the same, but acknowledging that they each have different strengths for different purposes. For me, the tools I use prefer a particular platform. What I don’t think is that there is a single supreme platform for all possible purposes. Personally, if I didn’t have a reason to be on Windows, I’d be on Ubuntu. Or maybe I’d eventually switch to ratpoison or XMonad on Debian.

But guess what? With three billion people on the planet,w e are not all going to have the same perspective. Thank goodness for that.

On that, I heartily agree. :slight_smile: