I like building computers, but only as an activity whose rarity makes it special. At work, I treat computers like any other piece of office supply equipment. I order commodity systems from a vendor with a warranty because hardware troubleshooting is not high on my list of enjoyable ways to spend a work day. It’s hard enough dealing with broken software, and I long ago lost my appetite for being on call to fix broken hardware.
At home, it’s a different story. For my personal systems, I want to be able to vouch for every single component. I will gladly accept full responsibility for maintenance, because downtime is not a serious issue. Besides, an SLA that you make with yourself is kinda fungible. I certainly don’t need to worry about being fired if my home computer goes down.
Recently when I told a friend I was building my own computer, he looked at me oddly, as though I were a relic of a bygone era, “I didn’t know anyone did that anymore”, and I found myself on the defensive end of what I thought was an argument long since settled. For one, I won’t trust my data with anything less than the best. Building your own system allows you to customize it to your needs rather than fitting into a pre-made mold. You can also spend more money on quality, rather than a vendor’s markup. But despite these facts, there are definitely valid arguments on the “buy” side of this debate that have become more compelling in the past few years.
In the early 1990s, PCs were $2000 investments that were typically bought pre-assembled from a major vendor. By the end of the decade, however, demand for home computers had saturated the market. Mail order companies advertised in dictionary sized editions of Computer Shopper and regional computer shows – giant travelling electronic circuses – were regular weekend events people would drive hundreds of miles to attend. This was all happening at a time of accelerated technological innovation in computer hardware. Every six months, faster processors, larger drives, new chipsets, and better RAM would be introduced that would absolutely crush the top of the market. Vendors couldn’t keep pace with this rate of change. Before a vendor could prototype and test a combination of components and then vet a stable enough supply chain to assemble at scale, their offering would be obsolete and several hundred dollars more expensive than what the solo enthusiast could build at home.
Then we hit the plateau. Despite certain notable exceptions, such as the graphics and HPC markets, personal computers today are only nominally more powerful than their brethren from a few years ago. Yet, this plateau is not so much the result of a decline in hardware innovation, rather it is a plateau of our expectations for what a PC should do. For most of us, the requirements of our personal computers are and have been fairly stable for the past decade: word processing, some spreadsheets, but most importantly, access to the internet. This means a good graphics pipeline for seamless video, lots of storage space for media files, an OS with many many layers of user-friendly UI on top of it, and good enough IO and compute throughput to minimize time spent staring at the hourglass. People, it doesn’t take Moore’s law scale innovation to meet this basic set of requirements.
As the role of the PC became well codified, the balance began to swing back in favor of the vendors. Commodification benefits from scale, and now that basic PC components can expect a usable shelf life much longer than six months, vendors have a lot more to gain from investing in their supply chains. Prices have come down hard, and most consumers are more concerned with convenience and reliability than they are with figuring out exactly what their computing needs are and then engineering the right combination of matching components to meet those needs. “I just buy Mac Book Pros now”, my friend told me. From a value standpoint, buying has probably overtaken building for more than a few years now.
So what am I doing? Am I really a relic, holding onto a faded notion that building is better? Should I throw in the towel and evolve like the rest of the market? Never! Clearly there is some emotional attachment involved here, not to mention a bit of stubbornness. However, the reasons I originally had for building are still relevant today and probably will be for some time. After all I am not and never have been the typical consumer, and I’m not building this computer to be a word processor or web browser. For niche markets where a general purpose PC is not the right fit in every aspect, it simply makes more sense to customize. For my development work, I only need a modest processor, but fast random IO is critical, and SSDs are orders of magnitude more efficient than hard disks. I’m willing to trade CPU that I won’t use in order to gain IO that I desperately need.
Now that I have a demonstrated reason to build instead of buy – on top of the “I just want to do it” reason – the more astute reader may ask “Why do either?” Why in this cloudy age do you want to have a rapidly depreciating brick sitting under your desk? With AWS, you can customize an environment that suits your computing needs rather effectively, with none of the hassle of hardware ownership and maintenance!
As a rule, I never underestimate the cloud, because one day (perhaps already) all the interesting problems will be solvable only with the infinite on-demand compute resources the cloud makes available. Besides, everybody’s doing it. Alas, according to Amazon’s AWS usage calculator, a conservative fraction of the work I intend to do with this machine would exhaust my budget for a new computer in only three weeks time. Hardware failure rates notwithstanding, for now I do believe I can expect a bit more value from my investment in bare metal.
Now that I’ve defended myself against the forces of conformity and made the case that building a new PC is not merely a fun hobby but a logically and economically sensible investment, I can at last free my conscience from any pangs of doubt and advance to the fun part of this exercise: shopping!