A new version of software X is ready to install

How come every Windows application has to provide its own upgrade system? Logging on to my machine can consist of several prompts of how new updates are ready to install, firefox needs to restart, antivirus definitions have been downloaded, and by the way would you like to update these plugins?

I can’t even play a game of Rainbow Six Vegas without it checking for an update first.

Ubuntu Linux handles this much much better. Most (if not all) of your installed applications are managed by a central repository. Only one update program is needed and it doesn’t ask you to reboot every twenty minutes.

I propose a similar system for Windows.

First step is to create an open specification which details:

  • how to register your application with the update system
  • format of application version information and how they are to be retrieved
  • how updates are performed
  • user interface guidelines (when to show notifications, information to show, etc)
  • what to do in the event of competing update systems

Second step is to create an open source implementation based on that specification. This is important as it gives people something to play with straight away. It also doesn’t lock them into your upgrade system and allows for outside improvements. If they don’t like it, they are free to use another implementation (or even create their own!).

An updater systems falls into the same category as installers; they are complicated and hard to do right. You shouldn’t be creating your own installer, so why should you create your own updater?

Instead concentrate on your own product and stop bombarding me with update notifications!