Monday, November 30, 2009

On the changing nature of software ownership; with a digression on horniness and the troubling interdependence of human beings

Sometime in the late 1990's, I realized that "ownership" of software had become meaningless.

Well, OK, I didn't grasp the full implications at the time. But the seed was planted when I was downloading the third or fourth or tenth macro virus protection patch for Microsoft Word 95 or Word 97. Maybe it was for my family's computer, or a friend's; or maybe it was for mine. I don't remember exactly.

However, I do remember being troubled by the implications of what I was doing. Ownership carries connotations of permanence, and the reassurance of physical possession: You own this, so no one can take this away from you. And I could indeed purchase a disc, containing a piece of software, which no one could take away from me. But this software had bugs, which made it vulnerable to security exploits; and I still needed to open files created by other people. This, in turn, implied that I needed to continue downloading updates for as long as I used the software. Even if I saved all updates available at any given time onto another disc, I would still be vulnerable to new exploits discovered later unless I returned to the mothership for more.

Therefore, unless I was willing to live a completely isolated existence, never accepting anyone else's data, I would always be dependent on the software's manufacturer.

And how long would they continue to provide updates? The answer was clearly "not forever". A few years later, a more precise answer came, in the form of Microsoft's Support Lifecycle Policy, which guarantees security patches for a certain number of years depending on the type of the product.

So, when I "bought" software, I was really paying for an implicit, limited-time support contract with the manufacturer. Without this ongoing relationship, my software would rot to the point of uselessness, as surely as a tomato on a blighted vine.

And the turn of the century also brought a new and particularly blighted vine for your software to rot on: the broadband Internet connection. Whereas before, viruses spread through casual sharing of floppy disks and occasionally file shares on your local network, a broadband Internet connection literally exposes your machine continuously to the cleverest and most malicious hacker in the entire world. And so it is that today, a vulnerable machine becomes infected within minutes of being connected to the Internet (on a non-firewalled network).

Lest the Mac or Free Software weenies (n.b. I am both) start gloating about the inferiority of Microsoft software, I hasten to point out that every nontrivial software system has a similar update schedule. How often must Ubuntu users run sudo apt-get update? How often does Firefox issue a point release? How often do Mac or iWhatever users get told to run Apple Software Update?

Therefore, software updates are an inescapable, relentless fact of Internet-connected life.

And security exploits are just the most obvious and unavoidable source of bit rot. Consider what happens when the organization — company or community, formal or informal — behind your favorite software decides to move on to the next version of a data format or protocol, and you decline to upgrade. New web pages stop being viewable; you stop being able to watch videos, play music, read documents, chat with friends, or really do anything involving other people.

Of course, you can choose to live like a virtual hermit, never sharing anything with anyone. But this comes with the same drawbacks as being a hermit in the physical world. Gains from trade and specialization of labor aren't just abstractions. Buying a jug of milk at the grocery store takes far less effort than raising and milking a cow. In some cases the difference isn't even a matter of effort but of possibility: it is impossible for an individual to manufacture an airplane, or even something as humble as an aluminum can, without relying on a massive infrastructure of manufacturing, transport, and trade provided by society. And likewise it is impossible for you to singlehandedly fork the Firefox source code, in any nontrivial way, if Mozilla takes it in a direction you don't like. (You might be able to publish an initial fork, but there's no way you'd be able to keep up with Mozilla; eventually they'd be adding critical features faster than you, and your fork would fall into the dustbin of history.)

And then there's the fact that your hardware will wear out or go obsolete, and your software will need to be ported to new hardware.

In short, your software lives in a continuously changing ecosystem of data. And you are inescapably dependent on other people to evolve that software in response to environmental changes in that ecosystem.

Therefore, while you may still "own" your software in some formal sense, that ownership means little in any practical sense. What matters is the organization that maintains your software, and your ongoing relationship to them. You're not (merely) paying for access to a passive bundle of data; you're actually making a calculated bet on the future behavior of a group of people.

At this point I'll show my colors and claim that, in the long run, open source projects with open governance structures offer more credible maintenance promises than proprietary systems. But that's a subject for a whole other set of posts. In the meantime, I offer two final nuggets, in the way of provoking thought.

First, yes, this post is a stealth followup to my previous post on ChromeOS punditry.

Second, I offer the following excerpt from Neal Stephenson's Cryptonomicon, concerning autistic World War II cryptographer and Naval xylophonist Lawrence Waterhouse:

Waterhouse has been chewing his way through exotic Nip code systems at the rate of about one a week, but after he sees Mary Smith in the parlor of Mrs. McTeague's boarding house, his production rate drops to near zero. Arguably, it goes negative, for sometimes when he reads the morning newspaper, its plaintext scrambles into gibberish before his eyes, and he is unable to extract any useful information.

Despite his and Turing's agreements about whether the human brain is a Turing machine, he has to admit that Turing wouldn't have too much trouble writing a set of instructions to simulate the brain functions of Lawrence Pritchard Waterhouse.

Waterhouse seeks happiness. He achieves it by breaking Nip code systems and playing the pipe organ. But since pipe organs are in short supply, his happiness level ends up being totally dependent on breaking codes.

He cannot break codes (hence, cannot be happy) unless his mind is clear . . . Clarity of mind (Cm) is affected by any number of factors, but by far the most important is horniness, which might be designated by σ, for obvious anatomical reasons that Waterhouse finds amusing at this stage of his emotional development.

Horniness begins at zero at time t = t0 (immediately following ejaculation) and increases from there as a linear function of time:

σ α (t - t0)

The only way to drop it back to zero is to arrange another ejaculation.

. . .

Now, when he was at Pearl Harbor, he discovered something that, in retrospect, should have been profoundly disquieting. Namely, that ejaculations obtained in a whorehouse (i.e., provided by the ministrations of an actual human female) seemed to drop σ below the level that Waterhouse could achieve through executing a Manual Override. In other words, the post-ejaculatory horniness level was not always equal to zero, as the naive theory propounded above assumes, but to some other quantity dependent on whether the ejaculation was induced by Self or Other: σ = σself after masturbation but σ = σother upon leaving a whorehouse, where σself > σother, an inequality to which Waterhouse's notable successes in breaking certain Nip naval codes at Station Hypo were directly attributable, in that the many convenient whorehouses nearby made it possible for him to go somewhat longer between ejaculations.

. . .

If he had thought about this, it would have bothered him, because σself > σother has troubling implications . . . If it weren't for this inequality, then Waterhouse could function as a totally self-contained and independent unit. But σself > σother implies that he is, in the long run, dependent on other human beings for his mental clarity, and, therefore, his happiness. What a pain in the ass!

I leave the connective tissue between the above passage and the rest of this post as an exercise for the reader.


  1. Isn't the same true of cars? You depend on the manufacturer for spare parts which they only supply for a while.

    Humans are profoundly social beings. Are the autistic really an exception to this except for horniness? I doubt it.

  2. Software is neither more or less others-dependent now than at any other point in history -- it's always been heavily dependent on the work of others, you just don't typically think about what other people have done to get your machine working as well (or as poorly) as it does.

    It can be very frustrating to have your personal choices altered by the caprice or mistakes of others, but that's just a fact of life -- software is no different.