I recently struggled for a few days to get my old desktop back up and working again under the Windows environment, for some tools that I needed to install under Windows (and possibly a game or two…). I had the hardest time getting the windows installation CD to complete. It literally took me the better part of 3 days standing on one foot, pushing buttons in the lotus position, swapping hardware in and out, before the installation would complete successfully. All the over near 100 times, the system would freeze, the CD drive would spin down and stay down, effectively freezing it, it would overheat, it would get a dirty read from the CD drive, it would blue screen and give a page fault….on and on and on.
After finally getting windows and the essential applications back up on the system, I started thinking about the machine and the many iterations that it’s been through ( read: a long time in the computer world). I still use it as my main machine when I work from home, which is rather amazing, given the amount of bloat in some of the dominant software industry tools. For instance, Aptana takes nearly 20 seconds to start up on my machine at work (which is much faster and newer than my home machine), so taking 30-35 seconds at home is not too different. Similarly, SQL Server Management Studio takes only about 10% longer, to an already long start-up time. All the tools that I use on my 1-year old machine behave rather similarly, if perhaps a little less snappy. And this machine is going to be 6 years old in just a month or so.
I built the first version of this computer the fall of my senior year of high school, after working in painting and apartment maintenance for $6/hr the whole summer ( and learning quite a few lessons, but that’s another story…heck, another book! ). The only home computers that we’d had prior to this one was one that our family bought in 1997 during one of the waves of the PC affordability periods. Needless to say, it was highly insufficient for playing games, developing OpenGL games and using Photoshop, etc, which is what I was mainly using computers for at the time. I got an internship (kick-starting the job that I still work at today) and promised my parents that I wouldn’t spend all of the money that I had made on a new computer. But I was determined to get one that would last me a while.
I already mentioned that I was into video games. I longed to join my geek friends from high school in their LAN parties that were being held about every 2 weeks, as they seemed like great fun, and I had a few classes with some of them, who regaled me with tales of their epic adventures. So, I splurged on the video card, really the only component that I bought above “the line” (the line is the point at which the price and power of the component are at their optimum. This is typically a component that is about 4-5 steps removed from the apex of power). Here is what the specs of the original machine looked like. It cost about $775 at the time:
AMD Athlon XP 1800+ (1.6 Ghz)
256 MB of PC-2700 DDR RAM
60GB 7200 RPM IBM ATA Hard Drive
128MB GeForce Ti-4200 AGP 8x
LiteOn 48x CD-RW/DVD-ROM
This computer, while meager to laughable in today’s standards, was for a few months probably the best machine at the LAN parties that I went to (remember, these were all high school kids working at Subway 15 hours a week. The adults at the time had machines that would’ve crushed mine, but I was barely making gas money each week). After about a year of joyous ownership, my motherboard died a smoky death, the day after a major solar storm was supposed to have dissipated with “fewer than expected effects”. I suspected that it was dead, and it was. So, i pumped a few more dollars into a new Motherboard/CPU combo, stepping up to an AMD Athlon XP 2600+ (2.06 Ghz). And then, the most amazing thing happened: a wonderful man at church, whom I was casual friends with, asked if my computer could handle PC-2700 DDR. He then gave me a 512MB stick of it! That tripled the RAM in my machine. Now I was really cooking with gas.
Fast forward 5 years. I have purchased 4 external hard drives (2 died, taking with them a combined 23,000 songs and countless other things). I now have a 250GB and 180GB drives (the 180GB backs up the 250). I have installed and uninstalled TV tuners, modems, NICs, replaced the motherboard 3 more times, the CPU twice more, a new heat sink, 3 new fans, 2 new power supplies, 2 new cases, more RAM (now at 1GB). But the basic computer is still more or less the same that it’s been for nearly 6 years now, and it still handles nearly everything that I would want it to do. Even though it protests, it runs Half Life 2 at medium textures at 1680×1050. It runs Photoshop, Aptana, SQL Management Studio, Dreamweaver, and whatever else you can throw at it.
Amazing to think about really, that a new dual core machine with twice the RAM, 3 times the memory throughput, a newer videocard, better hard drive (SATA), faster processor (by 1 GHz), and more….is not that significant in speed difference. i chalk much of it up to my careful cycle of reformatting windows and trimming down the system for maximum speed. But when this computer finally goes to the wayside (either through sale or a fiery death), it will have long outlived the expectations set out for it when it was purchased. My family’s computer at 6 years after purchase was an antiquated dinosaur, incapable of even opening Internet Explorer or (heaven forbid) Outlook Express. As hardware plateaus and the costs keeping down and down and down, the software just keeps getting bigger, more bloated, and more buggy. I’m not even that old and crochety, and I still long for the days when people cared about hand-optimizing your code before pushing through to development. As a developer, I still try to remember those practices of efficiency that were so prevalent in my youth. And I hope for a better future for the relationship of the developer and the machine once more.