16 Aug 2006 apenwarr   » (Master)

The Unmaker

In his Alvin Maker series, Orson Scott Card creates a character named Alvin. Alvin is a "maker": essentially, someone with a super power that lets him create and change things with his mind. As a classical protagonist, Alvin naturally only uses his powers for good, and because Card keeps his symbolism very nearly under control, it is only slightly too obvious that this is meant to symbolize the ability of everyone to create and improve things in nature. Only more so for Alvin, of course, because after all, it's a super power.

Every superhero needs a super villain, and Alvin's nemesis is the "unmaker," a mysterious force that seems intent on undoing humanity's creations and most especially, because super villains do tend to be a bit obsessive about heros, Alvin himself.

The other day, someone said something that worried me. They said, "Nothing you can do will last forever." Now, while I'm sure this is objectively true, it does seem a bit defeatist to me. Why shouldn't you try to make things last at least as long as you can?

Well, why don't they last in the first place? In the physical world, the answer is fairly clear, and we engineers call it "normal wear and tear." Dust, sunlight, rain, wind, army ants, the annoying kid next door, and other forces conspire to undo everything that you build, and all you can do is build things that last longer than others.

But the physical world is not particularly of interest to me. These are modern times, and I'm a programmer, and I deal with abstractions. And abstractions like software can't rot, can they?

Apparently they can, but for an interesting reason: abstractions can't change, but their relevance to the universe can. Mathematics is "pure" because once you've proven something is true, then it will be true forever... in the appropriate context. When you try to apply a concept, your context is the real, physical world. And the real world keeps on changing.

So to a large extent, "the unmaker" of your abstractions is just other people making things. And the way to make your abstractions last longer is to make ones that fit better, not worse, with other people's future creations. In other words, you need a really, really good design.

But I'm pretty sure that nowadays, if you have that good design, you really can make something that will last forever.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!