Sunday, 08 May, 2005

Over the past few weeks I've been wrestling with WiX (the Windows Installer XML) so that I can create an installer package for Active X Blocker without using third party proprietary software. I figured it runs against the grain of free software to use a proprietary tool to construct the installation package.

Since WiX is encoded in XML it is naturally very verbose. This means it takes a large amount of time to physically write the file, which is a source of much frustration. That said, having a plain-text format is actually a pretty smart move because this means that the WiX files can be versioned easily using tools such as CVS or Subversion; if the WiX was encoded in a binary format it would make it practical impossible for two people to work on the file at the same time.

If we put the verbosity of the WiX format to one side, we can easily see that it offers a tremendous amount of flexibility. If you're prepared to invest the time in learning the schema you can build an installer for anything from my relatively simple Active X Blocker program to the installer for Microsoft Office. It's really simple to create an installer package that silently installs the program on to the system. The difficulty arises when you want to put dialogs in your installer. You know, the obvious things such as a license agreement or the ability to select which part of the package you want to install. This is something have yet to master but rest assured I'll give some details here once I've cracked it.

The tool actually started life as a project within Microsoft for building installer packages. It was later open sourced by Microsoft and is now being used by an healthy community to create installer packages for all kinds of applications. You've got to hand it to Microsoft on this one, open sourcing this tool, as simple as it is, was a corrageous step for the king of proprietary software. I have a feeling that people may criticize Microsoft on this for being nothing more than a symbolic gesture in much the same way as people criticized the IRA for decomissioning a single bullet; it carries a fair amount of philosophical importance but practically it did nothing to bring the conflict to a close.

I'm going to refrain from drawing such comparisons. I think that Microsoft believes it can work with open source advocates, but they can obviously forget about the free software bunch. The thing to remember is that a large fraction of open-source programs are written for Windows. If anything this open-source software enhances Window's application stack. Since almost all of this software is free (as in beer), this means you get to run more software for the cost of your XP license which is something that is bound to make the Microsoft platform look more attractive.

Microsoft are not stupid, they know that this is the case and in some scenarios it makes business sense for them to engage the open-source community. The open-sourcing of WiX is an example of this thinking. Anything that makes it easier for developers to write programs for their platform is not only good for the developer but it is also good for Microsoft. We can be cynical and say that Microsoft is only interested in a single thing: it's bottom line. This accusation may well be true but it's a charge we can attribute to any corporation. A more pragmatic approach would be to welcome the fact that Microsoft has changed it's position on open-source and is approaching the movement a little more intelligently than before.

Simon.

12:03:15 GMT | #Programming | Permalink
XML View Previous Posts