I’ve you been following the common tech news, then you’ve probably heard about Apple’s plans to introduce the ”Mac App Store” with OS X Lion. I’ve always liked the way applications are managed on the iPhone; but it’s not the installation that I find intriguing - it’s the update process I find most convenient. At any point in time I can visit the app-store and update all of my applications with two clicks.
I’ve been using Windows since version 3.1, and while I have Macs and Linux computers that I occasionally use, my primary environment is still Windows (7). But if there is one thing that I find somewhat cumbersome, if not annoying, then it’s the time involved to update 3rd party applications. Even when one tries to keep the number of applications to a minimum, a power user will always end up with at least a dozen 3rd party tools like a Web browser (and associated baggage like Flash, PDF), productivity tools, notepad replacements and so forth.
So whenever the vendors of these tools come out with updates, we download and apply them. All these vendors have different ways of applying updates. Some have their own update tool, some require you to download a new setup, some have a patch, some utilize MSI, and so forth.
The result is obvious; the user is required to manually update all of his applications, an ongoing and time-consuming process that will continue for as long as the end user has 3rd party applications (that are being updated).
The upcoming Mac App Store aims at making both installing, and presumably updating, applications easier and more efficient. I’m personally not concerned about downloading and installing applications, something that’s fairly straightforward on Windows. But it’s the update process that will inevitably come with the App Store, which will make users on OS X more efficient, less frustrated and potentially more secure.
If you are a Windows user, then close your eyes for a moment and imagine an icon on your desktop that reads “My Software Updates”. OK, if you close your eyes then you won’t be able to read this paragraph so why don’t we just pretend we’re having a dream about the next version of Windows. This icon would also look different depending on whether software updates for all of your registered 3rd party applications are available or not. You double-click the icon, and you see a magical list of all available updates for your installed software. It would show you the name of the application, the installed version, the available version, as well as the ability to view details about the update. Then, you have an “Update All” button. Pressing this button will download and install all updates seamlessly. Of course, you can still apply individual updates if you so wish – maybe when you are on a wireless network with limited bandwidth and just need a particular fix.
To be fair, installing a patch every now and then is not the end of the world of course. But I’ve been doing it for many years now, and it’s several other million users that have been doing it as well. How much time are Windows users spending downloading and installing updates? That time could be spent inventing the next compost-powered recycled plastic car!
I think it’s fair to state that the world’s largest maker of a desktop operating system needs to get with it, and offer 3rd party developers a way to hook into a standardized application update mechanism.
While there are a lot of things to consider for such a system – including security – it wouldn’t be all that complicated. As a first, a software vendor would register its application with Microsoft and specify product details, for example from which server the Windows clients would software downloads updates for the product.
When the 3rd party app is installed, it would register itself, through some new APIs, with Microsoft’s software update sub-system. This would tell the sub-system which product and version has been installed, and from that moment on Windows would periodically check for the latest version.
No doubt, the trickiest part would be the update process itself. Updates distributed in such a way shouldn’t have a user interface while the patch or new version is installed, and any customizations would need to be deferred until the updated software is launched for the first time during the update. After the update was (successfully) applied, it would again call the new API and register the new version. If an error occurred, a standardized way of logging any errors – maybe through the Windows event log – should be defined. Oh, and please don’t require MSIs – software vendors should be free to distribute their patches and updates whichever way they want – as long as it adheres to some basic requirements such as running silently in the background.
This shouldn’t be a mandatory process, and I don’t envision any censoring on Microsoft’s side here. After all, a user is free to download anything onto their computer already – the new sub-system would just make it easier to apply updates. As such, a user could still go about installing updates and patches the traditional way – with the same end result – an up-to-date system. Maybe Microsoft would only accept software that is digitally signed – but anything beyond that would make this approach less useful.
Competition is good for end users, maybe Apple’s introduction of the Mac App Store will wake a few people in Redmond up.