While I'm waiting for the umpteenth time for the installation of Windows SDK - one of the more poorly written installers recently to come out of Microsoft - I'd like to carp a bit about Windows Installer.

Ever since Microsoft started forcing MSI installation down everyone's throats, program installation has just begun to take... forever.

The bad thing about Windows Installer is that installation programs written for it... are not programs.

They are databases.

It used to be that installation would consist of a program executing and taking a few simple steps to install your software, then do the reverse on uninstallation.

That's not how Windows Installer works. Instead of running a program to simply install and let it be done with, it examines the state of your system, then examines the state of the database that is the program's installer, then does a series of overcomplicated calculations about how to reconcile the two.

It seems that, instead of running an installation script, it goes about solving a traveling salesman problem. Which is why it runs so slow. Or at least, that's my impression.

Microsoft apparently thinks that Windows Installer is some immense improvement on the state of the world. Apparently, all kinds of idiot programmers were writing bad installers before MSI - programs that didn't properly take everything into account, botched the installation, botched the uninstallation... it was a nightmare. Windows Installer was supposed to solve this.

Except, it didn't. Writing an installation database for Windows Installer is no less tricky than writing an independent program that performs the installation right. In fact - it's trickier. In your own installation program, you can fix things. When Windows Installer does something wrong, on some platform, somewhere - that's much harder. Windows Installer is a more inconsistent, less reliable, less flexible platform, than Windows itself.

So we used to have unreliable installers, but now, thanks to Windows Installer, we have unreliable and god damn slow installers.

Yayyyy!