Douchebaggery

February 26, 2008

David Heinemeier Hansson has a problem with Windows as a programming platform.

While I can certainly understand the reasons why some people go with Linux, I have run all but dry of understanding for programmers that willfully pick Windows as their platform of choice. I know a few that are still stuck in the rut for various reasons -- none of them desire.

I would have a hard time imagining hiring a programmer who was still on Windows for 37signals. If you don't care enough about your tools to get the best, your burden of proof just got a lot heavier.

So if you haven't switched already, stop procrastinating. Get it over with. If you have any desire working for the rising rank of companies building their business on open source technologies, you don't want to carry a liability like that around on you resume. Being labeled a 2005 Switcher is bad enough.

Strong invective indeed, but that's David's style. To be fair, his larger point-- that if you care about open source programming, you'll use a platform friendly to open source software -- is reasonably valid, though I'd expect hard core OSS folks to want Freedom Zero in their operating system as well as the software they build. If I felt that strongly about OSS, I'd actually view people who held on to the platform lockdown of OS X with mild suspicion, myself.

Still, is it necessary to paint with such a broad brush? To imply that programmers using Windows "don't care enough about their tools to get the best"? I have a pretty thick skin based on the psychic scars of the thousands of petty internet religious wars I've participated in, and this one even ruffles my feathers a little. 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.

Before you jump all over David, do read his two followup posts (one, two) on the Ruby mailing list, which explain his position in a more coherent, less incendiary way. The argument that 37Signals wouldn't hire a programmer running Windows has as much to do with culture as anything else. It's like showing up to a job interview with Coca-Cola casually sipping a Pepsi. David, unfortunately, felt the need to turn this job requirement into a statement of taste. He declared Coca-Cola the morally and aesthetically superior choice, instead of the simple preference for one type of sugar water over another that it really is.

That post was written in March 2005, but David expressed the same sentiments in a 2007 technology prediction piece.

Apple will continue to trounce everyone else for the preferred geek platform. The stigma of being a Web programmer still using Windows will increase.

Here's what I don't understand about statements like this. They have exactly the opposite effect that the speaker probably intends. There are two possible reactions:

  1. Wow, David's right. I made the wrong choice in my career. It's high time I looked into OS X and Rails programming. They sound great!
  2. F****************k you.

Guess which reaction is more common? Actually, there's no need to guess, as I can guarantee every Windows programmer reading this is thinking #2 right now. As an evangelist looking to increase adoption of your platform, this is a remarkably poor strategy. When has abusing people into agreeing with you ever worked?

Of course, as David has said many, many times, he doesn't care whether we agree with him or not. Well, not in so many words, but you get the idea:

David Heinemeier Hansson: Fuck You

I actually admire this sentiment, as I've seen too many people get so wrapped up in what other people think of them that they can't bear to have an original opinion about anything. But if you accept the premise that this kind of statement won't change anyone's mind, and is ultimately ineffective-- even counterproductive-- what are we left with? What purpose does the statement "stigma of being a Windows developer" serve? I can only think of one: David gets off on putting other people down.

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.

Samurai Shodown 2 character select screen

I used to be an avid Samurai Shodown II player. I played as Earthquake, the impossibly fat, impossibly Texan ninja. I got so good with Earthquake that I could beat all comers in the small Boulder, Colorado arcade I frequented. This led a frustrated player to remark:

You suck! You're kicking our ass with the worst character in the game!

Indeed. There's nothing more satisfying than kicking someone's ass with the worst character in the game. After playing this remarkably well balanced fighting game for a while, I realized that every selectable character had their strengths and weaknesses. Playing well meant understanding your character and maximizing your strengths while exploiting your opponent's weaknesses. If you were clever and patient enough, you could beat any character with any other character. That was skill.

Don't waste time arguing about the character select screen. Results speak loudest. Show the world what you can do in your programming environment of choice.

Posted by Jeff Atwood
359 Comments

Have you ever wondered why most of the Unix users are advance Windows users and why most of the Windows users ONLY know about Windows?

"Those who don't understand UNIX are condemned to reinvent it, poorly."

In my opinion, people who don't know about Unix and C language. They are not serious about computers. Unix and C had stop being a operative system and a programming language and they became a standard.

If you want to become a programmer without knowing these two things you are going to have a lack of essential background knowledge.

keitaro on February 28, 2008 7:26 AM

Pretty much the opposite happens with computing platforms. Microsoft purposely gimps theirs, so you have to pay them extra for things like compilers, webservers, file server functionality, etc. The Linux folks work hard to give you everything your geeky heart could desire, and then some.

Huh? It isn't the "Linux folks" who give you that stuff. It is the individual OSS groups. And every single one of the major pieces of development software are also available for Windows. But the opposite is not true (Visual Studio, etc.).

I don't understand you Linux zealots at all. You want to tell us that Linux is great because it has all kinds of free, superior stuff. But all of that same stuff is also typcially available for Windows (and even runs better on Windows). Then you go on to try and blame Microsoft for somehow gimping their OS? Where do you people get off...

Matt on February 28, 2008 7:28 AM

Software is either about MONEY or masturbation.

(Not that there's anything wrong with that...)

Seriously, as a developer, I follow the money. I don't care if it's Linux, windows or OS o'the month.

I'm not a student. I'm not living in my parent's house. I could care less about open source and/or Linux or Windows, per se.

But guys (and gals), where are most of the jobs? Linux and open source, or clunky ugly Windows?


ThatGuyInTheBack on February 28, 2008 7:31 AM

I actually develop on both Windows (for work) and Rails PHP on OS X for my freelance projects. Jeff is right that there are pros and cons to any development environment. There are things about developing in .NET that absolutely irritate me, but the same can be said for Rails. In my opinion, as long as we're developing software, these issues will always be present.

I admire DHH, but I think its closed minded to basically tell one community in the development world (albeit probably the largest commercial development community) that they suck.

Bill on February 28, 2008 7:33 AM

Unfortunately, naive douches like Dave seem to forget one major industry where open source will never be the platform of choice, and in fact CAN'T be the platform of choice due to regs already written. This is a fairly large industry, you may have even heard of it, its called THE GOVERNMENT. I'm sure that most other software-purchasing governments in the world won't put up with the security compromises of open source, either.

There's another huge industry out there that could make the move to open source, but I don't see the slightest momentum to do so. The gaming industry, which has helped push PC performance standards for years now, is almost totally reliant on DirectX.

So according to dave, I should quite my job out of protest against the fascist Windows regime and go work at..........you know......that one place?

Open source is great, I love it and use several open source programs every day, hell I started programming in PHP/MySQL. However, this fairy world of open-source software companies taking over the computer industry and cotton candy clouds raining Kool-Aid just doesn't exist.

Mattkins on February 28, 2008 7:37 AM

Let's be honest:
* Windows is good for programming ONLY if you are developing using .NET. In fact for .NET work it is the best.
* Windows sucks for non-M$ programming. Non-existent shell support (no DOS prompt is not a full-featured shell - it is a poor-mans shell).
* OS X is mediocre at best for open source programming (the official RubyGems release has been broken for a very long time, not to mention issues with newer MySQL, PostgreSQL and even some Python issues specific to OS X). Many OSS incompatibilities that only get resolved after months of things not working on OS X. Generally that cannot be good for OS X open source development.
* OS X is generally speaking better for open source-based development than Windows.
* OS X provides more eye candy than BSD, Linux or Windows. (So what? I dunno, but thought I would mention it).
* Linux is the best for open source development with latest releases.
* BSD is very good for open source development, but not as current at Linux (generally).
* Linux isn't very good for Mono/.NET development.
* BSD sucks for Mono/.NET development.

If you are deploying server applications (Java/J2EE/JEE, Ruby/Rails/Merb/Camping, Python/Django/TurboGears, etc.) on Linux or BSD (which have stolen the non-.NET server market in reality), then developing the server code on Linux/BSD is the way to go as it removes many platform idiosyncrasies and significantly eases deployment.

This is as objective as anyone is going to get on this front.

SP on February 28, 2008 7:41 AM

Fighting games are a lousy example. Their designers explicitly balance the characters. The writers of OS X/Windows/GNU Linux do not intentionally balance their platform with the others, quite the opposite.

AC on February 28, 2008 7:50 AM

Every once in awhile I start thinking about getting a MAC, then I meet people just like DHH and remember why I will never get one. The MAC world is full of pseudo religious types and Steve Jobs is just the minime version of Bill Gates. Not even the Linux zealots are as agravating as the Mac users.

Apache and PHP and FireBird run just great on XP and Linux.
There are free and commercial compilers for Windows, both from MS and others.
Leopard seems to have as many problems as Vista.

I plan to add Linux as a server platform in the future, but that doesn't require me to give up Windows.

jwc on February 28, 2008 7:55 AM

@DouchbagHater

Talking like Noel Coward doesn't give your words any more credence, you know.

Alias user on February 28, 2008 7:57 AM

@jwc: no it doesn't *require* you to give up anything, but if being productive is important, it is usually better to develop and deploy on the same OS (no matter what your target OS is and EVEN with "cross-platform" languages like Java, Python, Ruby, etc.). If you aren't productive in Linux, then I would advise sticking to Windows as a target platform for now.

SP on February 28, 2008 8:09 AM

Huh? It isn't the "Linux folks" who give you that stuff. It is the individual OSS groups.

Quite true.

And every single one of the major pieces of
development software are also available for Windows. But the
opposite is not true (Visual Studio, etc.).

Essentially true. However, they generally either don't work as well on Windows, or are kinda kludgey to get to work. It happens that just this minute I'm trying to figure out if we can get Git to work well enough on Windows to be usable for our version control needs. I'm finding that it doesn't handle network drives very well at all. There are caveats all over the place that its faster on Unixes, due to the slowness of Microsoft's POSIX file-handling capabilities. Still seems faster than VSS to me though.


I don't understand you Linux zealots at all. You want to tell us

Heh. I got a good laugh out of this one. I don't use Linux at all. I've played with it, sure. Even ported an old CX/UX app to it once. But my home and work machines are Windows (home box is Vista even). Surely there are much jucier "Linux zealots" out there for you to go after?

T.E.D. on February 28, 2008 8:09 AM

... and I haven't bothered with Ruby on Rails since every time i look at Dice.com for the market where I feed and send my children to school I always get 0 - 0 of 0 jobs returned. Plenty of .NET jobs though.

Supporting Dependents on February 28, 2008 8:12 AM

my personal feelings towards Windows are
*utterly irrelevant* - if my company's
clients require that the software we develop
for them runs on Windows (as many of them
do), then we must use Windows, end of.

No, you're missing the point of the discussion.
DHH is talking about web development.

But doesn't 'web development' cover intranet
applications for clients who use Windows
infrastructure? You certainly want to be
developing on the same kit. This is exactly my
point, it is too easy to generalise from one's
own experience without taking into account the
huge variety of real-world commercial situations.


tragomaskhalos on February 28, 2008 8:14 AM

Great post Jeff!

It's amazing how often you state how I feel about a certain subject in a manner so much more eloquent than I could have put it.

Dennis on February 28, 2008 8:15 AM

I've developed in most of the OSS stacks for about 5 years, and I'm currently doing backend/server development in .NET (4 years now).

It's not an either/or proposition unless you're some kind of a one-trick pony. It takes a while to get productive on any platform, but being a smart programmer beats tooling any day, being a one trick pony is kind of stupid. We're spoiled for choices these days.

Personally, I run Mac OS X, Linux Vista at home. I've hacked Linux kernel code, high traffic *deployed* (aka real) Rails apps, and similar projects in .NET.

It's not what you use, but what you do with it, as Jeff says.

nexusprime on February 28, 2008 8:15 AM

I remember when quirky, odd, elitist nerds used to be the norm in technical environments, and their anti-social behaviors were celebrated as "part of their genius". Those that rely on their attitude rather than their performance and open-minded adaptability end up being simply tiresome, sad, quirky people. There is no singular end-all solution for all situations, otherwise the hammer would be the only tool in every handyman's toolbox, and I would be cutting wood with it. Somtimes even what is largely considered "better" does not matter, Beta was considered technically better, but VHS became the reality. Now we have DVD and righteousness is - and was foolish.

KObyrama on February 28, 2008 8:32 AM

wow. congrats on the assembly and test-firing of your internet tard collector.

Bernard Holstein on February 28, 2008 8:33 AM

Forgot the /sarcasm. OOOOPS!

Anyone want to loan me $2500 for a 20 year old Mac?

PaulG. on February 28, 2008 8:34 AM

As long as he doesn't try to hit me with his car for being a SharePoint developer. http://twitter.com/codinghorror/statuses/764555487

Eugene Katz on February 28, 2008 8:38 AM

I develop on Mac, Linux and Windows everyday. Windows is by far my least favourite.

I can only assume people who like Windows development are stubborn or inexperienced with the other platforms.

True, holier-than-thou attitudes are hard to take, but having developed on all three major platforms it is easier to see why people adopt them. The toolset on unix is just so thoroughly good and developer-oriented that Windows real does feel like a toy in comparison. And a frustrating toy at that.

Max Howell on February 28, 2008 8:40 AM

jwc wrote:
Every once in awhile I start thinking about
getting a MAC, then I meet people just like
DHH and remember why I will never get one.

You get me "weirdest comment of the thread" award. You are limiting yourself to a (possibly) inferior platform because there are idiots who use the (possibly) better platform. That's just strange.

LKM on February 28, 2008 8:40 AM

Interesting post. Between DHH and Zed Shaw, I'm starting to wonder if the Ruby community will be stereotyped for hostility the same way the apple community is for elitism.

My first religious war was Nintendo VS Genesis. I had an NES/SNES, my next door neighbor had a genesis. It wasn't a war that I particularly cared about- I'd always subscribed to a "What works for you, works for you. What works for me, works for me. It's probably not the same thing that works for you" philosophy. However, zealotry begets zealotry, and with the constant stream of "Better graphics", "Cooler Controllers", "Sega TV" that he was always rambling on about, I found myself drug into the war by a fervent hope that if I just proved him iwrong/i, the whole thing would some day drop. Every time something interesting was released for Genesis, he'd ask me, "I've proven over and over that Genesis is better. Why do you still like Nintendo?" And I'd answer, "Because the games are more fun." This would earn me a couple days of hostile silence (a welcome respite, to be honest) followed by an onslaught of fresh propoganda.

The point being this. The point of video games is to be fun. The graphics, the soundtracks, the budgets, and the number of buttons on a controller all flavor the experience, but if the game isn't inherently fun, you're basically sprinkling tobasco sauce on dog feces. That's what Sega Genesis was to me. The controllers were hip, the unit was sleek, but the games weren't as fun, so it didn't appeal to me.

The point of a development environment is to increase the speed, quality, convenience, just overall productivity of building the product of your choice. I prefer Windows for this, because I like writing code for the .NET platform. DHH reminds me a lot of the sega kid, "The one I picked is better, but I won't feel validated until you agree with me." I've developed on a mac before, but I never found anything I liked as much as Visual Studio. Acting like he's the authority on windows development is a little like when a vegan tells you "It tastes just like a regular hamburger." There's a confidence that hides the fact they have no frame of reference.

The point of all this isn't "Windows is better, mac sucks." It's, "Windows is better for me. Mac would not be. Claiming otherwise with zero background on me is, well, kind of stupid."

Also-
I played as Nicotine. And I rained down the fury.

-Alex

Alex on February 28, 2008 8:41 AM

Jeff,

Bet I can beat you using Jubei. :)

Wilerson on February 28, 2008 8:44 AM

I use all three on a regular basis (WinXP, OSX 10.5 and Debian Etch). I use Mac hardware because I can run all three. I also happen to like Rails, but I'm also looking at Django and Merb.

There are things I like about all three Operating Systems, and there are things I hate about all three. In the mid to late 80's my main machine was Windows. In 2000 I switched to Linux for about 5 years. Now I'm using a Mac. In 5 years I'll probably be using something else.

I'm glad Microsoft is the dominant player in the market because they're so predictable (better the Devil you know). I hope the Mac never gets above 10% market share because Apple's worse as a monopolist as Microsoft. As much as I'd like to believe otherwise, I don't think Linux will become dominant on the desktop (I *really* hope I'm proven wrong on this, but I'm not holding my breath)

So am I a douchebag Jeff?

Hmm, me thinks the pot is calling the kettle black.


Miles on February 28, 2008 8:47 AM

Internet 'tard collector indeed!

All of you frothing-at-the-mouth platform zealots (Windows or OSX) prove one thing quite well...

http://dogtoe.com/weblog/wp-content/uploads/2007/01/arguing_on_the_internet.jpg

Mike on February 28, 2008 8:55 AM

Jeff, I was also kinda wondering if the idea for this article about negative attitudery came from a recent AdAge article on a study by Mindset Media(or if it is a coincidence)... that found that Apple's ad's personifications of Mac users was dead on (I am a Mac user BTW, as well as Windows and Linux). Their research "mind-set profile" - a psychographic ranking system that scores respondents on 20 different elements of personality - found Mac users to be more assured of their superiority and less modest than the general population.

Linkage:
http://adage.com/article?article_id=123350

KObyrama on February 28, 2008 8:55 AM

Wait. I thought the whole thing was that we are talking about people developing for the WEB. Pretty much, you can write your source files in whatever editor works best on whatever OS you like. It really doesn't matter, since your going to upload these files to your server anyway.

I have never heard anybody say I had to use a Mac (or Linux) to write in Ruby. I certainly don't have to use a Linux to write php, perl, or Python.

.Net programming without windows, is difficult, but not impossible.

Now, if we are talking about which OS makes better servers for those files, then, well—not Apple.

I don't understand how people can get so heated about the OS when the OS doesn't really matter that much anymore.

Jeff Davis on February 28, 2008 8:58 AM

Samurai Shodown II was my favorite game ever. My best character was Jubei (the only true samurai in the game, incidentally). It's a shame he was absent from SSIII, and by the time SSIV came out, the "feel" of the game was too different to hold my attention. Ah, the good old days.

infidel on February 28, 2008 8:59 AM

I agree it's all about being the master of your domain.

I work with in a company where the majority in our software development department are Smalltalk programmers who do nothing but dis the rest of the group that use Java and/or C#.NET. They say that with their tools they can write more code faster. Although, whenever they have to deal with technologies such as databases, web services, xml, batch jobs, or web sites, they ask for our help.

Is it because Java is better than Smalltalk? No, it's because we are masters of our domain. While they debate that everything should be an object or method, we move on and use the tools available and try our best to master them.

I think my first mentor said it best as, "True programmers don't call themselves, Java Programmers, or VB Programmers, or C Programmers. They are just Programmers. They can take any language and set of tools and master them."

Jonathan Keel on February 28, 2008 9:03 AM

Jeff's main point is a bulls-eye.

Famous pilot Chuck Yeager, driving obsolete National Guard hand-me-downs in practice dogfights, would invariably "wax the tail" of hot jocks in the latest fighters. Skill is ALWAYS much more important than tools, environment, hardware, or the practitioner's personal preferences. I've observed this truth repeatedly in the programming world, as well as in woodworking, martial arts, engineering, cooking, management -- just about everything.

Thus, as an employer, I always look first for SKILL in prospective programmers and engineers, regardless of particular background in languages, operating systems, and tools. Indeed, many programmers have lots of particular experience, but no skill at all...

Jeff R. on February 28, 2008 9:13 AM

Something to think about: what percentage of developers currently using Mac for their work have experience with Windows?
And what percentage of developers working on Windows have experience with Linux/OS X?
And now who can make a better comparison?

Rimantas on February 28, 2008 9:18 AM

Amusing how on an article about platform douchebags (and that is a fitting term for them) that people continue to proselytize. If you have to justify what platform you run to random people on the Internet, then I suggest you figure out why you need to use it and be content knowing that it fits your needs. Why does everything have to be this gigantic zero-sum game? Why do developers insist on making everything a contentious point of ego? The ego is exactly the problem here.

The Internet as a whole is tiring because the sheer amount of attention that gets poured into these idiotic discussions, where nothing is resolved in a faceless, ego-driven battle of wits. The 'people-driven' Web 2.0 thing is a huge step backwards.

Matt Green on February 28, 2008 9:21 AM

As a comment, though... You just bashed Beautiful Code for not having enough pseudocode last week. The first step towards being platform-blind is being able to operate on all the platforms available. Religious wars are fun, but just saying, "F** you," in response to all suggestion leads to close-mindedness.

I'm a bit close-minded about Windows and OS X, I admit it, but I've earned it. And I know the alternatives.

Dylan Brams on February 28, 2008 9:27 AM

Wow. What a douchebagish article.

If I understand correctly, you are saying that it doesn't matter if I adhere to any standards or follow MVC, because the "it's the results that matter".

Would you respect my work as much if I used Word to write code, making multiple copies of files as my "versioning system"? The resulting web app *could* be the same...

Perhaps if you are a one-man shop. If I expect you to work on my team, you should be knowledgeable, educated, and use the best tools at your disposal.

Tamal White on February 28, 2008 9:30 AM

EARTHQUAKE!!! The BEST player in the game. He was just the one with the longest learning curve. I used to whoop-ass with Earthquake. One guy got so angry with me beating him repeatedly that he actually waited until I left the arcade and tried to hit me with his car.

However, believe it or not, Earthquake was nerfed in SSII compared to SSI. In SSI he was near-unstoppable, you could kill about any character in two or three hits. But it was not as balanced, Gen-An was cheap as hell and Ukyou could throw an energy attack and do a lunge underneath it, effectively attacking low and high at the same time, which was unavoidable to a larger character like Earthquake. The only way to really avoid that was to get in your attacks early and keep them down until dead.

This really has nothing to do with software development, but it's so nice to see a confluence of interests on one of my favorite sites.

Erik Harmon on February 28, 2008 9:30 AM

David's argument is just plain silly.

Can you imagine how it would go over if HR people started asking whether you were a democrat or a republican during the job interview?

"I'm sorry, we know you have the skills for the job -- but republicans just don't really fit into our corporate culture."

When he's writing Ruby on Rails code and he needs to consume a web service, does he shun services written by talentless Windows hacks running their inelegant applications on inefficient Windows servers?

Through my life, I've noticed that the most common attribute among racists is a lack of experience with other cultures and his comments definitely smack of platform-ism.

I can understand him wanting to toot his platform's horn but approaching it in that manner of black/white makes him sound like a tool.

Timothy Lee Russell on February 28, 2008 9:30 AM

Ryan:

i once tried to update a client site using one of their in-office windows boxes, i fiddled with putty and ie6/some freeware garbage ftp program and other stuff for an hour, told the client i wasnt going to charge them for that and i'd be right back. half an hour later i was doing the work on my laptop in their office with much less of a headache. it's as simple as that... and, yea, yea, what a fanboy, etc... but i only switched, as dhh also mentions, in 2005 - and, believe me, for good reason - and to my benefit.

You mean you tried using tools you are not familiar with and were unsuccssful, but it's the OSs fault?

Dennis on February 28, 2008 9:33 AM

I've developed for both the Windows and Non-windows world (I'm including Macs in the non-Windows world for a variety of reasons). I simply prefer the non-Windows world because I find it a lot less limiting.

I don't mind proprietary operating systems (Mac OS X is a proprietary OS), but I hate the closeness of Windows. Windows seems to do things just because they can. The most exciting development going on is in the Web programming arena, and Windows is far, far behind.

Microsoft seems to be doing its damn best to make Windows a second class citizen on the web. Almost all the people I know working on projects like Apache, Subversion, or PHP hate Windows because what will work on Linux, Unix, and even Mac OS X will simply fail on Windows without a lot of tweaking. Even web designers hate Windows and Internet Explorer because they work so differently from everything else on the Internet. If it wasn't for Windows super majority market share, most of the developers I talk to would simply ignore Windows.

You complain about Mac OS X being a locked down platform. How is this so different than Windows? With both, you have to learn a proprietary UI and can only run programs compiled to their platforms. But, this is not exactly true. I can easily download almost any Open Source application, modify it, and compile it on Mac OS X. To do the same for Windows takes a lot of tweaking. It's simply easier to load Linux and use that for web development.

I've seen both the Windows and non-Windows world. The Windows world is a big world, but it's closed. A Windows developer can easily get a job at any corporation. Many banks use .NET. Most Windows development use VisualStudio and either Visual Source Safe or Team Foundation. But they can't communicate with anyone else. Source stored in Team Foundation and Visual Source Safe is locked into the Windows world. .NET only runs on Windows server.

I can't blame David Hansson for his comments because he is correct in many ways -- especially for development in his company. Most Windows only developers just don't know what's going on in the world. If it can't be compiled in VisualStudio and it can't run under .NET, they believe it isn't worth doing. The few Windows developers who do see beyond Microsoft's limited vision don't use Windows when they do their web development. Instead, they reboot their Windows machine to their Linux partitions and run their Apache servers, and program away.

David on February 28, 2008 9:33 AM

To add to my previous post about Chuck Yeager and skill:

As an employer, I love it when a programmer comes in proclaiming "XYZ is (insert superlatives here) but PQR is a load of sh-- and those PQR people are a bunch of idiots." I love it because then I know everything I need to know about that programmer, and can quickly show him the door.

In my experience, the best programmers don't get into religious wars, don't flame like that, and always take a balanced, objective look at alternatives. On the other hand, the opinionated bad-mouthers are generally not only skill-less, but completely ignorant of their skill-lessness. That makes them worthless as employees, because they will never improve -- since they don't know how dumb they are to begin with.

Jeff R. on February 28, 2008 9:34 AM

The guy seems like a douche for sure. As a Windows programmer I'm really upset that I'll never get to work on any of the dumbed down crapola 37signals pushes out there with that "haha we are so genius cus we cut down on the feature set" attitude.

David Fauber on February 28, 2008 9:37 AM

Can you imagine how it would go over if HR people started asking whether you were a democrat or a republican during the job interview?

"I'm sorry, we know you have the skills for the job -- but republicans just don't really fit into our corporate culture."

Ah, but that is the point. If you are using windows it is either because you are stubborn and refuse to switch, or you genuinely don't care enough about your tools to look into what is the superior platform. That's not the kind of person I want working for me.

I use windows all day long at work because I'm forced to. If I didn't have to have this job I wouldn't, I'd be working for a company that values things like it's toolset instead of just sticking with whatever crap they've been using for 20 years.

thedude on February 28, 2008 9:46 AM

The Ruby community cares about aesthetic more then the windows community. Most windows guys think pluralism is stupid.

After being a .NET developer for 2 years I feel like lighting all my college textbooks and patterns and practice books on fire.

After attending a few Ruby User Groups I think #1. I made a bad choice in windows and .NET. They LIKE their tools. Zomg how many fricken times do i need to delete Class1.cs in a new project in VS.

The DHH FU is along the lines of a punk rocker telling the establishment to f off. The other communities have different values and culture.

They value aesthetics, they value patterns, they value naming... You want to know why we windows developers get a bad name? Just read the comments on the Old New Thing.

"Why does my malformed struct passed to windows api x cause an error on vista!11one It works on xp!1one"

"Zomg uac is suk. The os should know i'm an admin"

Give me a break. Windows programmers, my peers, are so used to draggy droppy, if its got a bug blame the OS, bull crap.

Its like they know that they can always blame Microsoft for any problem they run into. No matter what it isn't their fault it's Vista's or its Microsoft's. Have some integrity.

Tell a windows user that their favorite program isn't going to run on Vista... cry cry cry and blame Microsoft. Tell a Mac user that their favorite program isn't going to run on the new OS X, they complain to the software company that WROTE it, asking why the heck they are so behind the times.

I look around and see that there are only a few windows developers out there that have the same high standards and values as the Rails guys. Per capita the other communities have higher standards. Maybe it's because windows is so good it allows any tool to get started.

Don't confuse Elitism for pretentiousness. Elitism of the Rails guys is a good thing. It means they CARE. It's not pretentious if its true that they are better then you.

brian on February 28, 2008 9:47 AM

its a "I love swords, why isn't everyone using swords?". but sometimes, complaining is the only way to heal your pain when there's nothing else you can do :(

owen on February 28, 2008 9:47 AM

Your remark: "Which also means when you're using Rails and OS X, you're using the platform of choice for douchebags." Definitely makes it sound like you are calling all people using rails and OS X douchebags.

You should probably be a little more careful in phrasing the next time you make a similar statement.

Billkamm on February 28, 2008 9:59 AM

I just don't get this elitism and favoritism among tools and platforms among programmers.

That's because you're one of the ones DHH is talking about. You're completely oblivious to superior platforms and refuse to even consider the idea that you aren't using the best tool for the job.

As programmers we really should be the ones moving our clients to these better platforms, but no, we just sit by and continue to perpetuate the monopoly-of-the-mediocre for as long as we can make a quick buck.

Now THAT'S a fanboy.

thedude on February 28, 2008 10:01 AM

Instead of "douchebaggery", why not "douchebaggotry"?

anonymous on February 28, 2008 10:01 AM

@Telos

RDP is worthless if you want to manage non-windows servers. And RDP is also extemely annoying to use to copy information between multiple systems.

Powershell seems like it has a nice feature list, but it came out in 2006. Some of us jumped the shark long before that.

My point is that Macs start out better. I can download software to make my Mac more productive too, but that is irrelevant. I've consulted in tons of windows shops that didn't install any extra tools and it is a pain in the ass to set things up EVERY SINGLE TIME.


Nate on February 28, 2008 10:01 AM

The few Windows developers who do see beyond Microsoft's limited
vision don't use Windows when they do their web development.
Instead, they reboot their Windows machine to their Linux
partitions and run their Apache servers, and program away.

If you're doing web development, all you need is a good editor. So why would I have to change OS?

BTW, I have 11 years of experience with Linux and Unix systems. I have at least 15 years of programming experience, 8 of them I have worked in the "Internet" industry. It doesn't matter to me what OS I use, but currently my desktop OS is Windows XP so that I don't have to reboot to play games :-)

N on February 28, 2008 10:12 AM

I'd rather be a douchebag than an asshat putting all code behind button click handlers.

brian on February 28, 2008 10:12 AM

Man, this really brought out the 80%-ers on both sides.

Tom Clancy on February 28, 2008 10:14 AM

DHH definately has the zeal of convert. Didn't he used to be a PHP programmer?

Jimmy 2 Times on February 28, 2008 10:15 AM

If you're doing web development, all you need is a good editor. So why would I have to change OS?

Yeah, I don't get this argument or the "OMG svn is so hard to use on Windows" thread that keeps popping up here. Give Tortoise a shot. I know it's lame and closed-minded to have a GUI front-end to anything, but some of us have other stuff to do.

Tom Clancy on February 28, 2008 10:15 AM

I liked very much your post :)

In other words, it doesn't matter the weapon, but the warrior.

:)

PD. I follow you at twitter, and try to read all the good posts you give us, thank you so much.

Dx on February 28, 2008 10:16 AM

Well put Jeff. I laughed. I totally agree that results is what matters.

You should come over and play Tekken some time.

Andy Visser on February 28, 2008 10:18 AM

Everybody here talks as if you choose the language and platform and your customer or employer just agrees... reality is the other way around

Regards

Jorge Diaz Tambley on February 28, 2008 10:22 AM

Well said. Jeff, just so you know - I greatly appreciate your posts - ever so *insightful*... so thanks for a great blog!

Mike on February 28, 2008 10:23 AM

Overgeneralizers are douchebags! Er, um, wait. No, that's too broad:

Overgeneralization is the tar-and-feathering tool of choice for douchebags. Yeah there we go.

When you're drinking water, you're using the hydration agent of choice for murderers and child molesters, and you're guilty by association. So, off to jail with you!

matt on February 28, 2008 10:23 AM

also: david's post is a year old. enjoy stirring the hornets?

matt on February 28, 2008 10:27 AM

@Jeff R.
As an employer, I love it when a programmer comes in proclaiming "XYZ is (insert superlatives here) but PQR is a load of sh-- and those PQR people are a bunch of idiots." I love it because then I know everything I need to know about that programmer, and can quickly show him the door.

In my experience, the best programmers don't get into religious wars, don't flame like that, and always take a balanced, objective look at alternatives. On the other hand, the opinionated bad-mouthers are generally not only skill-less, but completely ignorant of their skill-lessness. That makes them worthless as employees, because they will never improve -- since they don't know how dumb they are to begin with.


This is the reason Fortune 500 companies still acrete COBOL/VSAM. They ain't no thing better. I bet you're a mid-level manager at o' them. Such folk are very antsy about boundaries; they insist on making them in their 20's and never shifting them. This is also the motivation of the Indian saga: only the very poor and desperate will accede to throwing more dung on the pile.

Change is not always progress, but progress is always change. And, no I wouldn't get within 20 miles of guys like you.

:)

BuggyFunBunny on February 28, 2008 10:30 AM

I like writing code, but I like making money even better. Therefore, since I'm not a fucking idiot, I choose to use whatever platform will make the most money.I'm not making a social statement, I'm not making a political statement, I'm not trying to win brownie points with the cool kids.

I'm looking to make a fucking buck.

If that means writing assembler for an 8080 then that is what I'll do.

Whatever on February 28, 2008 10:32 AM

This is excellent post! Although I do use a Mac (and OS X), but not Rails or Ruby (more of a Python guy) I agree with this post 100%. I don't have anything against people who use Windows or anything else. Use whatever suites you best.

Šime on February 28, 2008 10:35 AM

I have actually talked with DHH in person many times. He is a genuine and nice guy.

What I don't understand is why you have dredged up a post from 3 years ago. His most recent comment (from last year!) was a statement of opinion that doesn't carry nearly the weight that you are attributing to it.

This post just seems atypical of you Jeff.

Jeremy Pinnix on February 28, 2008 10:35 AM

Douchebag or not, I still believe that the only reason people use a Mac is because they are too stupid for PCs or too hip to develop on Windows.

Another good reason to not be a strictly open-source programmer: compensation. This may sound shallow but I think getting paid in "equity or cash if we gain vc, also depending on your level of participation" would get old after awhile. If you don't believe me check your local job search site for "PHP" jobs.

The Samurai Showdown reset was nice! I was the same way with Mortal Kombat and could beat any player using Scorpion or Kitana.

Will Asrari on February 28, 2008 10:43 AM

@Whatever, @BuggyFunBunny.

Amen people. Amen.

The comments on this blog are of typically high caliber that I'd just be repeating what others have said.

Rob S. on February 28, 2008 10:47 AM

"Don't waste time arguing about the character select screen. Results speak loudest. Show the world what you can do in your programming environment of choice."

I don't think DHH is arguing...just loudly expressing a provocative opinion. It sounds more like you are arguing with him??

DHH is showing the world what he can do with his programming environment of choice...he wrote a framework and now has a pretty solid dev community, started a successful company and produced some amazing web apps.

You?

Chris on February 28, 2008 10:48 AM

A bad workman always blames his tools. Indeed.

But most workman have a favoured set of tools.
Whether you like it or not.

And not recognising that by letting that conglomerate push bad tools puts the quality tool making shops out of business is too nonchalant for most. Such that some think you disrepect the craft.

Don't complain one day that the corner shop has disappeared when you only ever shopped at Wal Mart my friend.

Ol' Hairy on February 28, 2008 10:54 AM

I'm still waiting for the platform that is as good as Uyko was in Samurai Showdown 2! Balanced my ass!

Galford was still the coolest though.

Paul C. on February 28, 2008 10:54 AM

This post just seems atypical of you Jeff.
The quote from this guy is merely a way to talk about the larger culture of elitism and closed-minded "my way is the best for EVERYONE" that pervades among programmers.

I don't think I'd want to work with someone who is like that. You'd be the guy who never shuts up about how great so-and-so technology is, and how it isn't fair we aren't using your pet technology to do everything, and how it would be *much* easier if we did everything with it. (We just have to re-train everyone for several weeks, but then we'd all see the light and it'd be wonderful!) Basically, it is someone who is more about talk and less about developing software that kicks ass with whatever tools they use.

It is hard to feel threatened by such a crowd though. They lock themselves to whatever they're religiously attached to, making those of us who have experience on other platforms look far more flexible.

Matt Green on February 28, 2008 10:56 AM

Thank God. Someone had to say it. This is your best blog in a long time.

Some of us aren't in this business to chase some nirvana pipe-dream perfect electronic society. Some of us are here to make money. I am one of those. Sure, there are other reasons to choose programming as a career, and I do enjoy it, but again, I'm here to make money. I choose the platforms I choose because I'm making money at it. I deliberately chose the thing that would give me the most job prospects and make me the most *money*

This might sound a little greedy, but I learned a long time ago that there is one thing in life that allows you to do the things that really make a difference in this world - feed your kids, support charities, go green, etc... and that's cold hard cash. Personally, the open-source free software movement can take a flying leap - unless they can show me how to make wads of cash with it, they can keep their religious ideals to themselves.

Jasmine on February 28, 2008 11:25 AM

Douchebag or not, I still believe that the only reason people use a Mac is because they are too stupid for PCs or too hip to develop on Windows.

Believing something doesn't make it true. Also, it shows your ignorance of an entire platform. One that has been a serious contender since 2002 and a front-runner for almost as long.

I believe that the only reason people use windows is because they're too stubborn and oblivious to know there's something better. The difference between us? I used to _be_ one of those stubborn oblivious people and have seen that there's a better way than blindly following the crowd of sheep.

thedude on February 28, 2008 11:32 AM

Oh crap, I'm totally screwed. I develop using VxWorks, uItron, InTime, and RTX using such arcane languages as C and C++. The tools royally stink (for VxWorks and uItron anyway); the OSes are not open source and are tied to a strict licensing scheme; the languages are not web-friendly. It's amazing I still have a job.

Kevin on February 28, 2008 12:00 PM

I think some posters nailed it on the head when they say that they program on windows for money.

That is the main difference I see between Rails guys and Windows programmers.

Rails guys do it for love of the game not the money.

brian on February 28, 2008 12:00 PM

talk about sheeps and conformists...you heard about the joke about that guy who conformed with the rest of the non-conformists?

techy on February 28, 2008 12:05 PM

Great post, although it's depressing to have all my worst prejudices that "the other camp" (or the 5% of them that rant and get all the publicity) have zero sense of humour confirmed.

All these ridiculous "shame on you" responses to what was quite clearly a tongue-in-cheek joke about douchebags are too depressing for words.

Ian Smith on February 28, 2008 12:06 PM

I follow the teachings of Jesus who taught not to return Douchebaggery for Douchebaggery.
Despite the nice touch of including a picture in a slide presentation, your point would have been *stronger* w/o doing so.

Brad on February 28, 2008 12:20 PM

Hmmm.

So he's saying that running an editor on a Mac is somehow morally superior to running it on CP/M or XP or VMS or OS/360 or Solaris or TRS-Dos?

Kind of a funny notion...he's pretty young, isn't he?

David on February 28, 2008 12:20 PM

Luckily with ruby you dont have to care much about windows linux or macosx

That's the irony, isn't it? As creator of Rails, DHH should be the last person limiting the audience for his framework by insulting a large proportion of them. Repeatedly.

And it doesn't mean that people who choose, um, [Hanzo] are douchebags, even if they vocally proclaim the superiority of [Hanzo]

See, that's where you're wrong. In the right hands, *any* of those characters could kick your character's ass. Not realizing that means you don't understand the game at a very fundamental level. Or you're just a douchebag who gets off on telling other people that their character of choice sucks, while theirs rocks.

(Assuming the game isn't fundamentally unbalanced -- this is a whole other topic, of course.)

Jeff Atwood on February 28, 2008 12:26 PM

Excellent post! Made me smile, but I think the story about "Samauri Showdown" incident was brilliant - really says it all!

I've seen crappy software on nearly every platform.. And some freaking awesome software! Good software is good because the people who write it know what they are doing with the tools they have available.. I've had occasions where I have seen some cool stuff that I thought was done with the latest tech available.. Turns out it was made on a crappy computer in a department that resembled the '80s..

Get good at what you do, and the rest will follow...

Get really good and produce such fine work that the douchebags can only say "you suck! your writing excellent software on the worst platform!"

Rob on February 28, 2008 12:27 PM

PICARD KIRK.

ramen on February 28, 2008 12:28 PM

Great post, especially the analogy at the end! As a (.NET) developer this expresses my sentiments exactly. :-D.

I know a lot of people who downright hate Microsoft. and because of that they hate everything ever created by Microsoft (but still use Microsoft Office on the Mac). Douchebags..

Colin on February 28, 2008 12:40 PM

Meet the new boss, same as the old boss. It's all the same crap, really. Drive a Ford, drive a Chevy. Drink Coke or drink Pepsi. Look, I'll change my tools mostly when I need to, and sometimes when I want to. At the end of the day, you've got a product to make/maintain and it's not the tools that are going to hand you success or failure. It's the people. It's always the people.

Look, maybe the car I drive (vb.net) isn't the cool car out on the street, but it gets me from point A to point B and I like driving it. If you want to call me an idiot for that, go ahead. But who are you and what do you mean to me: the answer is nobody and nothing.

Kenneth on February 28, 2008 12:42 PM

Samurai Showdown is ripe for a reboot these days. I loved that fighter when I played in it the movie theatre arcade. I always played with the Snakeyes-looking ninja. I couldn't stand the fat guy ;) Although I did like the green guy with claws. Then I found DOA2 on PS2 and have never looked back. By far DOA2 (or series) is one of the best fighters around.

Morning Toast on February 28, 2008 12:43 PM

I code in VB.NET on Windows XP, and I haven't been struck by lighning yet.

David Heinemeier Hansson bozo bit = 1

Chris on February 28, 2008 12:45 PM

"I think my first mentor said it best as, "True programmers don't call themselves, Java Programmers, or VB Programmers, or C Programmers. They are just Programmers. They can take any language and set of tools and master them.""
Yep, and true politicians don't call themselves "Republicans", "Democrats", "Conservatives" or "Liberals".

Partisanship: A Chronic Waste of Everyone's Time and Energy.

Tom on February 29, 2008 1:00 AM

"You can code day-after-day in .net, Ruby, Python, C++, and eventually you will need an understanding of unix/linux."

Yes, but for most stuff you'll need a knowledge of Windows long, LONG, before that.

Tom on February 29, 2008 1:02 AM

You VB programmers. So far down the food chain, yet so mouthy! :-)

http://lukewelling.com/2006/08/03/java-programmers-are-the-erotic-furries-of-programming/

Diego on February 29, 2008 1:04 AM

So many comments. So I will only add, "Well Said!" and use the tools you and your customers have to create what your customer needs.

Cornie on February 29, 2008 1:05 AM

Well put.

I've never been more proud to be reader of CodingHorror.

Barry P. on February 29, 2008 1:21 AM

Well put.

I've never been more proud to be a reader of CodingHorror.

Barry P. on February 29, 2008 1:22 AM

YOU RULE.

F**** 37 Signals. Will never use their software, will never recommend them, won't give them credits for their negative marketing stunt they try to pull off.

As a real software developer, you rule everywhere. F*** that b*****. I do c++ in windows and linux. Tools. Technologies. You use them, they don't use you.

Cultural differences? Sure, they exist. But business in the end requires a clear mind.

F**** them, again

LOL on February 29, 2008 2:34 AM

first of all, i don't give a fuck about dave wants people to hire cos i don't give a fuck about 37signals or rails. secondly, if you spend 99.9% of your development time in your IDE, what the fuck difference does it make if you use windows or fucking linux or mac fucking osx? personally i use a laptop that came with windows xp and why should i stuff around configuring it with linux when i don't give a fuck about oss fanboy elitism. so to summarise, fuck off dave and the rest of you oss fucking geeks, no offense

dodger on February 29, 2008 3:18 AM

With such responses, you put yourself even lower than Mr. Hansson.

http://xkcd.com/386/

nick on February 29, 2008 3:57 AM

The funny thing is wikipedia says DHH received a "bachelor's degree in Computer Science and Business Administration"... from Copenhagen Business School... Just look at the website of Copenhagen Business School (http://uk.cbs.dk/) and search for a BSC in computer science.. You won't find it. I guess its simply just a MBA with mandatory low level cs courses. Ever heard of a hacker genius that only received an MBA and nothing else? Never heard of that...

MyCharWomanDoesRuby on February 29, 2008 4:17 AM

Ditto to Reg Braithwaite's comment above. Jeff's stooping to his level.

Tim on February 29, 2008 4:20 AM

Hi Jeff,

One of the reasons I read this site is I am a coreOS and network hacker on Unix; I sort of see this site as an alternative view (and often a good one).

I agree with the thesis; being a jerk is bad on a lot of levels - especially if you are right: to use a (tag)headline of douchebaggery? I do not write ruby code nor own an osX system - but to me that tag/headline is not cricket and your tone could be better. Calling someone out can be done with grace - sometimes it can just be implied.


Regards,
Jay

Inflamatory Writing on February 29, 2008 5:21 AM

Nice post. I liked the comparision with character select screen.

Varun on February 29, 2008 5:47 AM

Jeff said:

See, that's where you're wrong. In the right hands, *any* of those characters could kick your character's ass.

Ah, those magic hands. I'm sure there's someone who could code up a better Website in, say, INTERCAL than I could in Django or Seaside. That doesn't mean that an interviewer has no right to question the judgment of a candidate who waltzes in saying that INTERCAL should be good enough for anybody who wants to write up Web apps.

Assuming the game isn't fundamentally unbalanced -- this is a whole other topic, of course.

Aaaah, I think you've hit it right there. It all depends on how well-matched the characters or tools are for a competition (and there's a whole other "Turing-equivalent" vs. "Blub paradox" argument waiting to be had).

I'm okay with the fact that you and I disagree on the well-suitedness of one tool or the other. In this I respect and even savor your opinion.

meh on February 29, 2008 6:52 AM

talk about sheeps and conformists...you heard about the joke about that guy who conformed with the rest of the non-conformists?

I assume you're talking to me. And that would be rediculous. Since I'm not 'conforming to the non-conformists', I chose a platform based on it's merits _instead of_ doing what all my friends/peers were doing.

When I got an iPod for christmas one year I thought, hey, doesn't apple have like new management or whatever these days? And I went and did serious research. I found people who had macs and talked to them, played with their powerbooks. The os was clearly superior even at a cursory glance. So I took a leap and got a machine. Best thing I ever did. How is that me conforming to anyone? Just because I refuse to follow the status quo doesn't mean I'm somehow automatically following someone elses propaganda. I make decisions for myself based on research and fact. You 'sheep' windows users (and i assume you are one...) seem to think in black and white a lot. Newsflash, I just boot up a virtual machine if i need something in windows (rarely, usually to test in that pile of dogshit IE). Can the same be said of windows? I don't see how it's so hard to admit that something better has come along and it's time to switch.

thedude on February 29, 2008 7:29 AM

Zealots of whatever persuasion never seem to get it...

There's no magic bullet.

And what goes on between a person's ears is far more important than if they use brand X or brand Y.

Pascal on February 29, 2008 7:38 AM

Great blog. I really think your conclusion was spot on with regards to the SSII reference. Great software developers are talented regardless of what platform they program on. He really sounds like a typical Apple Fanboy trying to promote his own development platform. I'm sure MacOS is a great OS and Ruby is a fine platform. It's just that neither of them are for me. For one, I can get the functionality and development tools I require from my Windows machine and Linux. It's all in how you use it, not worship it, which I think is part of your point. Thanks for exposing this idiot to me. I didn't know all that much about him before now.

Keith on February 29, 2008 8:04 AM

«Back | More comments»

The comments to this entry are closed.