Do you ever pick up your old, slow laptop and wish that it hadn’t obsolescicized so fast? I absolutely love my 12″ ppc powerbook. It isn’t fast enough to play a decent live set using Ableton Live for which my white macbook is perfectly suited, and it only has one processor which makes it a turtle on the highway for development, but it is still appealing. Why? It’s the aesthetics and the simplicity together that draw me to it. This has happened every time I’ve owned an obsolete laptop, so let’s have a look at why.
The biggest draw is that the laptop was a great product. It was well built, felt great, and rarely failed. The aluminum case, full-sized keyboard keys, crisp DVD loader, rubber wrist guard edges, robust mouse pad, and of course it’s elegant po’boy no wasted space design are irresistable. I also love my macbook, but all of the above stated features were lost with the intel CPU and white plastic. Fact is, I like typing on my little powerbook. Nothing has broken, and it still feels good.
What’s more intriguing, though, is my attraction to the simplicity that the single, slow processor forces upon you. When you use a slower machine you are forced to serialize your thinking, and to focus closer on one goal at a time. No room for ADD here, I can’t configure and compile this or that while watching a youtube video. Just sit me down with a couple of 80×24 Terminals and give me emacs, make, and a python interpreter.
There are two opposing methods for designing and coding a program. Faster, multi-core machines allow you to write crap code and compile and re-compile in short periods of time, for even the smallest of trivial changes (font color, anyone?). At the other end of the spectrum a developer could sit down with a paper, pencil, and eraser, and write the entire program out after completely understanding the problem. I once read an article about an older developer in a rather large project that wrote his entire module out on paper before typing it in, one char at a time. It compiled the first time and ran flawlessly for years with only one error caused by someone else’s adjacent module. This is intruging.
A more obvious factor involved in developing on a slow machine is that it forces you to write fast code. Qt’s painting on the ppc puts you into a bloody time warp; sometimes it’s like watching paint dry. But, just like learning nordic ski technique, it’s a fantastic excercise to bring out the weakest parts of your code. You can only consider your code to be tight and rebust when you’ve eliminated the weakest links in the chain. I am hard-pressed to ask if tighter, more robust solutions actually equate to more development time in the end. Do you think so?
My first laptop was a hand-me-down toshiba with a 100MHz processor that I got from my employer in 1998. I put redhat-5.2 and windowmaker on it, and learned how to write my first C programs using a gigantic C/C++ reference. While running windows and any useful app was a crapshoot, here I had a fast windowing system and a really cool night theme. If I had my way, I would jump back to windomaker in a heartbeat. No dock apps, no weird compiz flare, just a keyboard shortcut to xterm and firefox. Here is a nostalgic blog post from another guy experiencing the same thing.
So now I’m sitting at my desk on a Saturday typing on my poor little powerbook, while my fat-cat macbook sits idle the the side. I’ve got a web browser, a text editor, and iTunes, and I’ve written an entire article without checking my email once in the process 🙂