WiX in adolescence? I hope so...

I recently discovered that Marc Andreessen (yes, that Marc Andreessen) started blogging earlier this month.  He's been on an amazing tear.  Pretty much every single blog entry is worth reading from start to finish back to back.  Based purely on his writing, I think it would be really fascinating to meet Marc in person.

One of the things that really interests me in Marc's blog entries is that I will learn stuff about the startup world (which I have little experience with) and at the same time identify with something he mentions in passing.  That very thing happened with a small piece of Marc's latest posting (at 2:28 AM).

However, every once in a while, you get a new technology that will march, more or less predictably, through the following stages: alpha; beta; pre-adolescent general release where it is adopted, picked apart by, and then dismissed by the inside baseball crowd; silence while it's tweaked and tuned and enhanced to have broader appeal; adoption by a new wave of pragmatic early adopters who have a real use for it in their daily lives; adoption by those early adopters' friends and relatives and colleagues based on enthusiastic word of mouth; and then a gradual spiralling of uptake into the mass market, ultimately resulting in whatever level of millions, tens of millions, hundreds of millions, or billions of users for whom the technology is truly appropriate.

That paragraph echoes exactly what I was trying to say in my posting yesterday (er, I guess it was 9 minutes into today) about the current state of the WiX toolset.  In particular, I said:

I think we're also crossing into the next phase of community where the second phase of adopters are picking up the toolset.  The early adopters are usually very technically savvy and willing to put up with a certain amount of pain to check out something cool.  The second wave of users are usually less impressed with the technology for technology's sake and want more things "to just work".  I believe satisfying the needs of that second wave of users is what pushes a technology to the next level of adoption.  It's going to take us a good long while to get there with WiX v3 but we'll keep expanding the foundation and trying to make everything easier...

There was a lot of buzz about WiX in the middle of 2004.  Admittedly, the buzz was more about Open Source at Microsoft than it was the core toolset but the attention had the same effect (something like 180,000 downloads in the first couple days then down to 1,000 downloads per month, IIRC).  Over the last few years we've slowly marched to stability in WiX v2 and now we are tackling ease of use features and more polish in WiX v3.  It feels very much like what Marc describes above, except at an order of magnitude or three smaller since we're targeting developers not the massive consumer market.

What I find most interesting is that this whole process feels very much like the way that WiX v1 (never released externally) and later WiX v2 was adopted inside Microsoft.  Things are a bit different now (being Open Source and outside the Microsoft firewall) but still very familiar.  I also know what happens next.  A lot of hard work.

Keep coding, you know I am.

 

posted @ Friday, June 29, 2007 4:06 AM

Print

Comments on this entry:

 re: WiX in adolescence? I hope so...

Left by Dinther at 7/12/2007 1:14 PM

Rob, I am sorry mate but I can only hope Wix will be torn apart by the crowd and be discarded.

I have been trying to work with Wix for 2 months now and it is my opinion that together with MSI it falls short on many fronts.

Why is it that installer technology is consistently underestimated? Installing is not copying files. In fact it is one of the less significant steps in an installation process.

Installer applications need to collect information evaluate collection information, make decisions on them, write information, perform evaluations and operations on information with and without a GUI. You know what that sounds like? Any old full blown fat client windows application.

So why are we not using weather proven application development tools. They give us a powerful and complete syntax, compiler, linker and most important. A debugger so I can actually see what the installer is doing wrong.

In Wix even something as trivial as evaluating a version string read from the registry "2.8.1.1117" to then decide if it is newer or older requires a custom action in a dll. For my installer I want to read and write to a database. so I need another dll. So I get to write code anyway but I deny myself access to industry strength IDE environments and programming languages.

Why do we do that to ourselves? Why can't we just use a good baseline installer API and treat an installer for what it is...an application.

Show me one reason why I should persist learning Wix (Besides being able to hold on to my job of course ;-) )

 re: WiX in adolescence? I hope so...

Left by Josh Korn at 8/14/2007 11:48 AM

In large measure, I agree with Dinther.

Working with WiX, I consistently have cause to wonder if it has a defined goal, and if so, what is it?

Does it substantially reduce what I have to learn in order to produce an installer?

No. In fact, when I've posed questions, the "official response" is often to tell me to go consult the Windows Installer documentation.

Does it help me create installers faster?

No. I've spent more midnights than I could afford, trying to get what looked like trivial pieces of syntax to work, because the stuff either wasn't documented, or worse, much worse, was described inconsistenly.

Does it help me overcome problems that are idiosyncratic to the environment I have to deal with?

No, not really. I still have to resort to Custom Actions far too often. And custom actions aren't documented at all. Correct me if I'm wrong, but I haven't been able to find a single end-to-end example of a custom action.

 re: WiX in adolescence? I hope so...

Left by Gavin McKay at 9/3/2007 6:42 PM

I don't think I agree with the previous comments, for the simple reason that Wix is not `the` solution to installers - it is `a` solution. Wix has been designed to integrate with the Microsoft Installer. If you need to perform more advanced installation tasks (such as use databases, custom actions, etc) then maybe Wix isn't the right tool for you, and indeed you may have to write your own Windows App that will do the job for you.

What Wix *does* provide is integration with low-level Windows Installer API `glue` that can help you create fully Windows Installer-compatible installations. It really depends on what your installer needs to do as part of its installation.

Out-of-the-box, Wix is `Advanced XCopy` (sorry for the gasps of breath from collective Windows-Installer experts out there :) . You can create custom actions, but if the effort to create custom actions is greater than the effort of writing your own application to do the installation, then you have a decision to make `To Wix, or not to Wix, that is the question...`

For example, we built an installer for our application that gets rolled out to 23 sites throughout the country. Each site has to install to the desktop, as well as upgrade a database. We created a Wix installer for the application, and then a separate `upgrade my database` app that was a custom-build, because it was just going to be too hard in Wix. Admins deploy to the desktop anyway, so upgrading the database for them isn't a big deal.

Dinther - for some application installers, it really is about just installing files. Consider how many applications you have installed on your machine, how many of them have complex installation requirements, such as installing/upgrading databases? I'm guessing it would be very few.

Josh - sounds like you definitely need a custom installer, probably written in a programming language of your choice, and indeed Wix won't do the job.

Just my two cents worth...

Your comment:



 (will not be displayed)


 
 
 
Please add 5 and 8 and type the answer here:
 

Live Comment Preview: