Upgrade pain is software's shame

New hardware shouldn't require new software - so why do we tie the two together?

You've had your old computer for two years. If you don't buy a new one the global economic recovery will reverse into recession, gangs of desperados will roam the streets with flaming torches, barrels of molten tar and hessian sacks of feathers, and you know who'll they'll be looking for. Don't think I won't give them your address. So why haven't you upgraded?

I know. Modern software is so powerful and flexible, you've spent most of those two years fine-tuning every aspect of your computing experience. Your personal computer is just that -- intensely personal. If you buy a new one, the sheer pain of moving everything across, reconfiguring and rebuilding as you go, will outweigh any increased productivity or joy of ownership.

Fair enough. That's why we need a way to move every detail of your computer configuration from machine to machine. One way that suggests itself is to have a special store on the Net, so that when you buy a new PC -- or just pitch up at an Internet café miles from home -- you can type in the URL of your virtual persona and have the machine automatically become the warm, familiar environment you've spent so much time honing.

This should be one of the great advantages of the digital age -- we should be able to carry our virtual homes around with us, not have to shuck the lot every time we outgrow the basic infrastructure. We're better than hermit crabs, for heaven's sake. We should own everything, important and trivial, that we put into our computing lives: the tweaks in our spelling and grammar checkers, the email folder configuration, where we habitually dump browser downloads. These are common factors across operating systems and across hardware platforms, and if it's beyond the wit of man to devise a way to describe them all in a common, open, extensible format then perhaps we really are as witless as bottom-dwelling marine life.

I'll tell you why this hasn't happened: software licences. As soon as you get this sort of portability across machines, it becomes not only easy but essential that you evolve a way of moving complete software packages across at the same time. You'd think that this was exactly what the software industry's been after all these years: p code, Java, C#, all make great play of being cross-platform: ideal for writing applications that run anywhere. That's without the various scripting languages that have grown up with the Web. And even if you can't get exactly what you want with pure portable languages, we have any number of encapsulation technologies that mean a software company can host platform-specific bits of software, to be downloaded and delivered to a remote client on demand.

Software licences -- at least, those attached to expensive, closed packages -- are very insistent that you only run the software on one computer. Such ideas are incredibly important to software companies -- indeed, Microsoft fatally crippled its own Smart Display technology rather than relax the licensing conditions. It can't be possible to have software you can run anywhere on any platform with that sort of licence, can it?

Of course it can. It's almost trivial to add the idea: when you tell your universal personal descriptor server that you want to duplicate your virtual existence on a new platform, it can invalidate the licences for whatever you were using previously. This can either be a purely legal business, or it can create and revoke signed tokens that the software needs to run. Or a mixture of the two: there's only one of you, and it's not hard to make sure that your permissions follow you around.

There's just one fly in this ointment: if you get all this working well enough, it becomes trivial to move not just your work experience between computers but your complete software set. It's a nightmare today to move packages from one computer to the next -- you have to find the original disks, reload all the patches, recreate all the dependencies -- but with a proper descriptor-based system, that would be a thing of the past. Your software upgrade cycle is no longer synchronised with that of your hardware: in fact you could go through life without ever upgrading, say, your word processor -- once you got one that did what you want how you wanted it, it'd be there for you whenever you bought a new computer.

That may not seem like much of a problem to you -- quite the reverse -- but it's enough to give software companies, at least the sort that depend utterly on you buying the same software many times, a fit of the vapours. So, next time any of them claim they're working hard to make things great for the end user, look them in the eye and call their bluff.

On the other hand, there's no reason why the open-source mob can't get this idea working. Far be it from me to point out that it would give them yet another unassailable advantage over their brothers in binary, but as they say on the Oscar tapes: for your consideration.