I read this blog post [via Jeff Atwood's excellent Coding Horror blog]:
"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."
Obviously, those of us writing software on a Windows computer are knuckle-dragging cavemen. The biggest fallacy of his argument is that the choice of your operating system classifies you as either a l33t hax0r or a woeful Windoze luzer; this is just a different twist on the classic religious wars such as vi vs. emacs. Besides, I thought the whole point of creating web applications was to free the customer from the desktop and provide rich features regardless of the operating system being used. Oh wait, only if you're using OS X. And Ruby on Rails. And if your first name is David; the rest of you can suck it.
There are good programmers and bad programmers and the choice of operating system or language won't magically move you from one group to the other. A bad programmer using OS X and Ruby is still a bad programmer. I would have a hard time hiring a programmer who was so stricken with his choice of technology that he was blind to the benefits of other choices. If you have a desire to work for a company where technical decisions lead to unwavering zealotry, then 37signals sounds like a great place to work.
Personally, I like Windows because I'm comfortable with it, warts and all. And I like open source software such as emacs, PHP, MySQL, Firefox, and Appcelerator. In fact, I like open source software so much that I'm in the process of releasing Blue Violin as open source software. I do so because I do care about using the best tools.
In a follow-up post, he elaborates further:
"On the other hand, if you want to work with open source technologies like the Rails stack of Apache/lighttpd, MySQL/PostgreSQL, Ruby/Rails, etc, I find a strong disconnect with doing so from Windows. It's just not a natural fit neither from a technological, cultural, or political perspective. Actively pursuing or celebrating this unnatural fit raises a red flag for me."
All of the products he mentions run fine on a Windows computer. Here I am just trying to get my work done only to find out that I'm a technological Frankenstein and scare away small children.
And he continues:
"As such, I'm a bit surprised by the apparent controversial nature of the original posting. Sure, it was worded with enough sting to likely cause a reaction. But that 37signals, and companies in general, base hiring decisions on a sound technical/cultural/political fit surprise me to come as a surprise. "
Oh, be still my beating heart; feigning surprise is at the best naïve.
Think for yourself and choose the best operating system, language, framework, chocolate milk, candy bar, or paint color that's going to give you and your product the best chance for success. When people ask me "what programming language should we use on this project" I ask them what language they know the best and immediately recommend that language. Any technical choice you make has its benefits and problems and your job is to make sure you understand both; you should always be able to argue both sides of a technical decision or you really don't understand the choice you make.
Lastly, your customers – they don't care. They just want stuff to work.
Glad to see more sensible folks bothered by David's grandstanding. It's about as sensible as judging a golfer by the clubs they use, which is backwards. You judge a golfer by the score they write down at the end of the round, and developers should be judged by the work they produce.
Most pro golfers use the tools they use because of sponsorship deals - pretty much any PGA sponsor produces good enough that the player's skill is the predominant factor. Tiger Woods would still beat a whole lot of other pros on the PGA tour using a non-busted set of clubs from a garage sale.
As you point out, the major power tools we use - modern programming languages, robust application frameworks, modern operating systems, and sound databases, are pretty standard across OS X/Windows/Linux, and a good developer can be very productive using these tools on any operating system that they are familiar with. I suspect that I could be more productive on a Mac in my current environment, but am unwilling to spend $2500+ out of my own pocket to prove this theory with an adequately specced MacBook Pro, thus demonstrating what an elite developer I am. When my work laptop is due for replacement, we'll see what happens.
Pragmatism is a highly desirable trait in a developer, zealotry is not. Zealotry is thing that drives developers crazy when their mindless boss wants to buy IBM or Microsoft products based on name brand alone. A pragmatic person can imagine that there are many credibly talented developers out there who aren't using the zealot's prescribed set of tools.
Posted by: Rob Kischuk | February 29, 2008 at 12:04 AM