Pleased to meet you, I’m a cyberpunk guru. I am calling my column for U&lc “Look at the Underside First. ” There are several good reasons to follow this useful design principle. First, it’s what veteran professionals tend to do in any line of creative work. Once you get past your gosh-wow journeyman phase and learn how to do the cool stuff, you develop a pained understanding of the irritating flaws, gaps, cavities, bugs, and screwups inherent in your craft. Dilettantes, however gifted they may be, really can’t bear this revelation. This is the fatal moment when they quit and go do something groovy.
People also tend to look at the underside first when they don’t know enough to tell top from bottom. This is why fools, children, and foreigners ask oblique, embarrassing, and highly penetrating questions.
People naturally want their product or practice seen in its best light. PR, sales, and demo people are paid to show you the top side, never the underside. They don’t want you to understand what’s going on or how such things came to be. They want you to reach for your wallet and consume the product.
There is no royal road to understanding. But there is a subway. You can learn a lot in a hurry if you burrow right down to the reeking cellar where the bodies are buried.
So it is with all-things-cyber. During the past 30 years, the human race has created a shining software City on a Hill. It’s very complex and technical, and very much beyond the grasp of the hoi polloi. So it would seem from the cathedral towers, anyway.
Granted, there’s no question that software has absorbed fantastic amounts of human ingenuity and capital. This structure of software is weightless and immaterial, spiritualized and empyrean. This tends to disguise the fact that it rots.
It rots, and it also stinks. The Y2K problem is the first major public scandal to be caused by digital decay. Time simply ran out there, you see? All around the planet, little multi-line pillars of clock-code that are holding up old programs are going to snap. What happens after that is anybody’s guess.
Y2K is one of a class of similar legacy problems. Let’s root around in the sewers and have a look.
Software commonly stores dates in two forms. There’s the month-day-year approach, the source of the Y2K debacle. Then there’s the weirder practice of counting the time elapsed from some primal code-based event. The Unix operating system, for instance, has been counting seconds since New Years’ Day 1970. Unfortunately, Unix stores the tally in a cramped little 32-bit register. Unix’s comprehension of history is therefore limited to 2,147,483,647 seconds. The Unix universe rolls over at that point; without a bugfix, Unix history will be reset to the Year Zero on January 19th, 2038 (at 3:14:07 a.m.).
It’s bad enough that this expiration date is profoundly meaningless to humans and that 3 a.m. is the midnight of the human soul. But it’s worse yet, because some C-language applications running on Unix will think that it is January 1970 all over again, while others will revert to December 13, 1901 — probably. That’s a theory. Because it hasn’t happened yet.
The satellites of the Global Positioning System count weeks, not seconds. They have been counting weeks since January 5, 1980. Alas, they can only count 1,024 weeks. Things look rather dicey for August 21, 1999. Not so much for the birds themselves, as for their multiple-vendor, land-based, GPS hardware.
It gets stranger. The USA is engaged in a growing squeeze for area codes. It looks like we will run out of phone numbers sometime around 2015.
Add some more digits, you say. Yes, but what about the computers? There are millions of applications and databases inside mainframes and PCs that rigidly presume ten-digit phone numbers. And fax machines do that as well. And cellphones. Plus a wide variety of digital personal assistants and nifty little phone-storage wristwatches. I don’t care how much it cost — please don’t presume you’ll be passing that watch to your grandson.
Surprise — we’re burning up Social Security numbers. They can’t be reassigned when the original owner dies. We will hit the wall in about 75 years — unless we insert more digits, or switch to a NAFTA code, or a global ID code. Great ideas, right? But what about the embedded SS# applications in millions of computers?
If that weren’t enough, the Europeans are about to invent a new currency. The “euro” has a new typographic symbol. The euro itself may create both financial and software havoc in electronic banking circles, but as a special font-designer bonus, its symbol doesn’t exist in any of our legacy character sets. Imagine the fun!
So much for this technical litany. The burning question is: what does this mean? What on earth have we done to ourselves?
Let me offer a revealing metaphor. You can design code from the beginning as if you really knew what you were doing; or you can jam code together higgledy-piggledy and live with the consequences. It’s a basic, architectural decision.
Brasilia and St. Petersburg are both capital cities. Brasilia was created through a master plan, in a virgin wilderness, by forward-thinking, government-approved pioneers. St. Petersburg was built in a swamp by a violent megalomaniac. Brasilia has known peace since birth. The Nazis detonated a hundred thousand bombs inside Petersburg. Brasilia has a hot but equable climate. Petersburg has floods, subsidence, sweltering summers, and merciless frost heave. Brasilia is run down in places and has its slums, but the level of decay in Petersburg is truly gothic. Brasilia is young, but at least it knows what it stands for. Petersburg has a full-blown identity crisis. In the past century it’s been Petersburg, Petrograd, Leningrad, and then Petersburg over again. And now it’s not even a political capital any more.
But Brasilia’s just not very interesting. Petersburg has real magic.