I can relate to them. Good hackers tend to gravitate towards Unix based OS'es for some reason. So out of personal experience and anecdotal evidence, I would say that the conditional probability of a voluntary Windows user being a great coder is less than, say, a Linux user.
Many Windows users are also at a disadvantage because many of them have only/mostly used Windows. Pretty much any Linux or Mac user has probably had to (voluntarily or not) use Windows at some point. Also, I have yet to meet the Windows user who can rationally reason about their choice of using it and not another OS.
If you've only used one operating system in your life, you are at a disadvantage compared to people who are proficient with two or more OS'es.
edit: I know this is controversial. There might also be a regional bias, since I'm located in Helsinki, the hometown of Linux :)
So out of personal experience and anecdotal evidence, I would say that the conditional probability of a voluntary Windows user being a great coder is less than, say, a Linux user.
If this is true, it's only moderately true and only recently. Historically Windows had a pretty big advantage in terms of great coders. Including virtually every game shop almost exclusively (incuding legends like Carmack, Sweeney, etc...).
It was in part just due to the fact that if you wanted to make money, you wrote Windows apps. It's like iOS is today, except a magnitude more dominant.
It's only in recent years with the web and mobile where this has begun to change. But I'd say that only mobile has typically had super strong devs. The web until just the past year or so has not been a place you could hire generalists. We've really just begun to see devs that I'd hire to do any work at our company -- not just web people.
As a counter example, Carmack wrote Doom on a NeXT workstation[1].
These days OSX seems to be pretty hot for game dev, certainly if you want to do any iOS stuff, and OSX is creeping up as a platform too, with Steam now available there. No doubt windows will be king for a while yet though.
Yes, Carmack did like NeXTStep a lot. With that said, most of his career Windows was his main dev box. Even post Doom he went back to Windows as his main desktop:
"The upside is that windows really doesn't suck nowdays. Win 95 / NT 4.0 are pretty decent systems for what they are targeted at. I currently develop mostly on NT, and Quake 2 will almost certainly be delivered on win32 first."
http://rmitz.org/carmack.on.operating.systems.html
And more importantly, as it relates to DHH's statement, excluding Windows developers isn't like some odd niche. It's probably a healthy percentage of the best developers in the world. Fortunately for DHH he's at a webdev shop where pure coding skill is probably less important than cultural fit.
Fortunately for DHH he's at a webdev shop where pure coding skill is probably less important than cultural fit.
I would argue that, at most programming jobs coding skill is less important than cultural fit, once you've passed the level of "reasonably competent developer."
Games seem to be a Windows thing. If you play Games, you must use Windows. If you make games, you must write them on Windows, because your audience is on Windows. There are exceptions to this, like Minecraft running on Java (but Notch seems to be a Windows user anyway).
Games are a big chicken-and-egg issue for Linux and other OS adoption. A big part of this issue is Direct3D vs. OpenGL. While D3D is clearly a superior API, OpenGL is the only choice if you want to support non-Windows OS'es.
So if there were more games (talking about big titles here) for Linux, there would be more gamers using Linux. And subsequently more games would be written for Linux. As there is no initial group of customers (big enough to attract publishers' attention), the situation is not going to change. Unfortunately.
Eugh, I'll rise to the bait. I can switch between games and editor on linux via keyboard shortcut; Ctrl-Alt-7, Ctrl-Alt-8. Run games in a seperate X session and everything becomes much easier.
I wasn't trying to bait an argument, I was being serious. There are games I want to play that are only developed for Windows.
I don't need to run Linux to develop or deploy for Linux, but I do need to run Windows to play those games. It is not irrational for me, then, to choose Windows as my host OS.
It's not irrational to have other preferences either, but that wasn't the claim the grandparent made -- that there were no rational reasons for someone to use Windows.
Do you refer to the better availability of games on Windows? Are games good enough a reason for you to stick to that OS even when doing work?
I can sort of relate to you. I have a dualboot Windows system, where the Windows part is for gaming only. It serves roughly the same purpose as many people's gaming consoles do, I don't even try to do work with it.
There is software I want to run natively (like games) that only runs on Windows. It is an indisputable fact that this is the common case. It is not irrational to want to run some of this software; it's also not irrational for someone else to not have that desire, but that's not the point here.
There is no software I want to run natively that only runs on OS X or Linux. The software that doesn't run on Windows is software I don't need to run natively; I can SSH in to a Linux server or VPS somewhere to test/manage/deploy it.
So the rational choice is to run Windows as my native OS.
If you are not satisfied by this argument, then I don't think you're being truthful with yourself regarding the "I have yet to meet the Windows user who can rationally reason about their choice".
I am a Linux developer. I have set up, administered and deployed software on Linux stacks for almost 20 years. But I don't need to be booted onto a Linux OS to do any of that work -- Python, PHP, Apache, MySQL, subversion and git all run fine on my Windows machine alongside my editor for dev and testing. I can SSH in to any of the Linux machines to administer and deploy on them just as easily as someone running Linux natively.
To force myself to run Linux and reboot into Windows to use the Windows-only software would be entirely irrational. Why would I waste my own time like that?
Microsoft Office. LibreOffice is pretty good as a standalone product, but when I used it regularly I had nagging document formatting problems when exchanging files with my work colleagues.
If you depend on a software that is available for Windows only, you're on the borderline whether you're actually using it by choice or not. Especially if the software is Office. At work I have to use Outlook for corporate communication so I run it Windows in a virtual machine. The tools I need for real work are Linux-only (and require native HW access), so this is the only sane choice. Of course, this means I have to have a license for Windows.
Now Visual Studio is a different beast. Comparative tools are definitely available on other OS'es, but many VS users have a preference.
I wonder if he still stands by this rant? (Nothing has changed in the OS landscape but people tend to mature with time and their absolute stances tend to mellow with experience).
http://david.heinemeierhansson.com/arc/000433.html