Coding Horror

programming and human factors

The D.I.Y. PC

In Screwdrivers versus Couture, Ed Stroglio nailed the real difference between PC enthusiasts and Mac enthusiasts:

One might think case modders or overclockers [or developers] in general might be more prone to the Mac outlook, but that's not really so. What such people are proud of is not mere ownership of the equipment, but what they've done to it to make it what it is. It's a much more hands-on sense of accomplishment: what has been done rather than what it was out of the box.

PC enthusiasts are all about the D.I.Y. aspect of the PC. Sure, Dell's designers are laughable, but that's not the point. We make the beige box what we want it to be:

PC case modifications
PC case mod PC case mod
Apple G5 case
Apple G5 case

I'm not saying one is inherently better or more aesthetically pleasing than the other. They just come from very different places. Apple's G5 systems are the product of a world-class design team and stamped out by the thousands; custom PC builds are the highly individual result of dozens or even hundreds of hours of personal investment.

This same D.I.Y. ethic also extends to PC software. Specifically, open source software. I know there's nothing that ties open source development to the PC platform in particular, but certainly Linux was born on PC hardware and the entire open source ecosystem is built primarily on PC hardware. Isn't building custom software a little bit like hot-rodding your automobile?

I read this [Edmunds] article and was struck by the similarities between this and the open source vs COTS model.

COTS (Commercial Off The Shelf) software is equivalent to a stock automobile. They're built by professional engineers, and tested as a whole. But you don't get to mess with the system.

On the other hand, open source gives you the ability to join the software equivalent of the tuner/modified market - you can tweak the system to your hearts content. You may make it go faster, but you're not totally sure what it's going to do to the overall quality of the system.

In fact, I constantly read that that's one of the huge benefits of open source - on an open source project, if you don't like how something works, you can just step in and fix it, while with COTS you don't have that ability.

Tinkering and tweaking isn't limited to open source projects; it applies to COTS software, too. I'm a COTS Windows user, but I have a dozen different utilities and tweaks I have to install before I'm happy with my build. I know plenty of users who go even further and retrofit the entire GUI using WindowBlinds.

While I certainly appreciate Apple's ability to box up elegant hardware designs with an elegant UNIX GUI makeover, that just isn't for me. I have more fun when I do it myself.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: