Mark Pilgrim on The Setup

What would be your dream setup?

I have an Apple ][e in my attic. My parents bought it in 1984. We used it exclusively for five years; I wrote my first program on it, I wrote my first poem on it, my mother ran her first business on it. We sold it to a family friend in 1989, and she used it as her primary computer for 10 more years, until 1999. A few years ago, I paid her to ship it back to me. The damn thing still works -- color monitor, 80-column card, original disk drives, everything. Most of my 25-year-old 5.25-inch floppy disks still work. Of course there's no software being written for it anymore (except Silvern Castle, God bless you), but what it could do in 1984, it can still do just as well in 2009.

I've had my current desktop for a little over two years. I want to continue using it for another 20. I mean that literally: this computer, this keyboard, this mouse, these three monitors. 20 years. There's no technical reason the hardware can't last that long, so it's a matter of whether there will be useful software to run on it. First, there's the operating system. People throw away computers every day because they're "too slow" to run the latest version of their preferred operating system. Linux (and open source in general) is not immune to this, but I think it's more immune than proprietary operating systems. Debian only recently dropped official support for Motorola 68K machines; that's stuff like the Mac IIci that I bought off the clearance rack at Microcenter in 1992. The latest version of Debian still runs on my old PowerPC "G4" Apple laptop, even though the latest version of Apple's operating system doesn't. Commercial vendors have a vested interest in upgrading you to the latest and greatest; supporting the old stuff is unglamorous and expensive. Commercial open source vendors aren't really much better than commercial proprietary vendors in this regard, but community-led Linux distributions can afford to have different priorities.

Next in the software stack is drivers. Everything from the network card to the graphics card to the sound card needs a working driver. Linux has the most comprehensive driver support of any operating system, ever. Yes, I'm including Windows in that statement. People think Linux driver support sucks because newer hardware sometimes only works with proprietary Windows drivers. That's true, but there's a lot more old hardware in the world than new hardware, and Linux has superior support for older hardware because the community writes and maintains their own drivers. People throw away computer accessories every day because they upgrade their operating system and can't find functioning drivers. (Will that scanner you bought in 1999 still work on your shiny new 64-bit Windows 7 machine? I wouldn't bet on it.) All of my hardware is supported today by open source drivers, which removes one of the primary reasons that people throw away working hardware. Again, I'm not saying Linux never drops support for older hardware, but the cycle is longer and the incentives are different.

Next up is applications. Open source has the clear advantage here, because communities can recompile and redistribute other people's software for multiple platforms. I'm currently running a 64-bit operating system on 64-bit hardware. With few exceptions, all of the software I run can also be recompiled to run on 32-bit operating systems. This is so common now that we take it for granted, but it's really quite remarkable. No doubt there will soon be 128-bit hardware available at reasonable prices, and then other advances after that. And Linux distributions will take advantage of newer hardware, but they can also continue supporting older hardware for much longer than proprietary operating system vendors, which rely on individual developers to support each platform. So if there's an operating system that still runs on my hardware 20 years from now, I'm pretty sure I'll be able to run Emacs on top of it.

Where my 20-year plan will most likely fail is not at the operating system or driver level, nor with the existing crop of applications. At some point we will invent an entirely new class of application, like the web browser was an entirely new class of application 20 years ago. This new class of application will naturally be targeted at the "current" hardware of the day, and nobody will bother to backport it to the hardware I have now. Chromium is actually a good example of this, only shifted a few years. It contains a dynamic JavaScript compiler (V8) which requires explicit support for each hardware architecture. There is no Chromium for PowerPC, even though it's open source, because a central piece of the application only works on x86 and AMD64 architectures. There's nothing stopping anyone from writing a PowerPC version of V8, but it's unlikely to happen unless some super-genius hobbyist decides to take it on. And browsing the web and using web-based "applications" accounts for 90% of the time I spend in front of a computer. (Writing doesn't actually take that long. It's the long stretches of procrastinating that take up most of your time.) So it's a safe bet that in the next 20 years, there will be an entirely new class of application that doesn't exist now, and I'll want to use it, and my hardware will be so far behind the curve that none of those new applications will support it. Then I'll have to upgrade.

But hey, you asked for my dream setup. That's it: one computer for 20 years.

Posted
Views