Technology Philosophy

Posted by Daniel Lyons Mon, 06 Oct 2008 16:40:00 GMT

I’ve been playing with Plan 9 again. It’s interesting technology, sure, but more interesting to me as a statement of philosophy. Let’s take the Unix philosophy about files and really extend it into the network, rewrite everything to use or serve files via 9P. What you wind up with is a network operating system, in the sense that everything you’re using might be networked. It’s also a statement about programming, that the best way to deal with data is as flat files of binary data, and that as far as programming languages go, C is just fine.

I’m not sure I agree with those last two points, but one wonders whether or not they could be changed without ruining the system. How many of any system’s warts are cosmetic, and how many of them are fundamental? Apparently the developers of Plan 9 felt that some of the warts were cosmetic, so they made Inferno, which replaces the language with Limbo (still a curly-brace language, but a more featureful one) and insinuates a virtual machine as the underpinning of a hypothetical operating system. And basically, it works like Plan 9.

Some of the great ideas about Plan 9 were so simple and great they’re winding up in other places. You can get 9P for Ruby, for Lisp, for a host of other languages. They’ve ported Plan 9’s userspace utilities to other operating systems, including Mac OS X and Linux. And you can run Inferno on a number of platforms. So you don’t need to be “locked in” to Plan 9 to use most of the power of Plan 9.

Sometimes I have to wonder if there is something good about the lock-in. Somebody called “jfm3” posts about this, citing this concept Done is Better as an alternative interpretation of Worse is Better. Most technology contains within it the wish that all of computing be seen afresh, refracted and reassembled through it. Lisp, Plan 9 and XML all contain that wish, that maybe systems built from the ground up with them would be more excellent, more transparent, more hackable, less bullshitty. But somehow, in the practical world of commerce, we always wind up with these heterogeneous systems. We mind the thought of storing all our data in XML, but we don’t mind serving it out over REST. We mind the thought of switching to Lisp for everything, but we don’t mind simplified macros. We mind the thought of dealing with Haskell for everything, but we don’t mind bringing map and fold into our everyday languages.

I think there is a moment with many technologies where they become recursively complete. I’m sure there’s a more mathematically correct term for what I’m referring to. With Matterform’s Voltaire, that moment came when we had given extensions access to the whole core, which was just three basic systems. Lisp’s REPL is a better example: between those three functions read, eval and print, there’s nothing left to expose. With Plan 9, the kernel doesn’t have to do a whole lot, mainly it has to multiplex access to 9P and provide the initial bootup. The way you recognize one of these systems is that you keep running into the same metaphors over and over again—you don’t wind up having to create totally new abstractions from scratch. The initial abstractions are simple yet powerful enough to see you through extremely diverse unforeseen circumstances.

So I have to wonder what it is about these systems that we find so attractive and so repulsive at the same time. Is it merely the amount of work it would take to, say, port Mozilla and other applications over? Or does it go deeper, that we just distrust homogeneous systems? Do we desire some funk? It’s not hard to look at Vim or Emacs versus Acme and say, these are extremist positions regarding the keyboard and the mouse, respectively. Does that mean we will always prefer editors like DreamWeaver, TextMate, Eclipse and so forth, that make poor use of both instruments? Do I really prefer the limitations of TextMate, or just the aesthetics? Are the aesthetics really so powerful they can trump technology—even among academics and researchers?

I’m pretty sure that even if Plan 9 had replaced Linux, I’d be annoyed by it, but I still have to wonder. So much of our current technology seems unquestioned. Only tiny changes seem to stick.

Tags , , , , , ,  | no comments