ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

Saturday, April 19, 2008

Dealing with Bullies

In the past, I've made observations that WiX doesn't do a whole lot to help setup developers create a UI for their package. I mentioned that most `Hello World` examples show a simple Component element snippet as evidence of how `easy` WiX is. Unfortunately the resultant packages don't actually have a UI.

Professionally, I think this is unacceptable for the vast majority of situations. I've always been a fan of the patterns discussed by Leslie Easter long before MSI ever came out. The concept of interviewing the user and having a point of no return. I don't like the click, fire in the whole pattern unless the user opts in for this behavior via a /s or /qn type command.

Of course the author of WiX couldn't possibly admit that this was a weakness. While he and his cronies will judge everyone else to exacting standards, this no-UI story was just completely fine. After all, he's a self-professed command line / notepad kind of developer so why would anyone else need a UI?

Unfortunately newbie setup developer pick up his tools and follows the provided examples and assume that the resultant packages are normal best practice.

Why do I think this? Read this article where I found a trend of UI less packages authored in WiX. The trend was so powerful that I could `identify` a WiX package just by the fact that it installed without ever showing a UI.

Over time,WiX has improved (some) and does now provide a basic UI experience. Of course most WiX packages all look the same because making changes to that UI experience is less then easy since the tool doesn't have any designers. InstallShield on the other hand lets you completely extend the UI experience ( either using Basic MSI or by using InstallScript MSI with an external UI handler ) and also allows you to pick default skins/templates to make fast and radical changes to the appearance.

The other day, the author of WiX was talking about how it was obvious Google used WiX because the UI was Red instead of Blue. Now I probably read into this a bit, but based on previous comments of "I never cared much for InstallAware. Their MSI authoring tool just looked like an InstallShield clone..." I detected a certain bit of pride that WiX packages were somehow better looking because they are all red while the rest of the industries use blue. After all, he's hates InstallShield clones and all of the WiX toolset ( icons, votive, ectera ) is all branded in a red color scheme. Sure, I might have read into this too much, but I don't think I'm that far off the mark here.

Well, I think the whole red vs blue thing is silly. I decided to post a blog showing how much farther InstallShield can take the UI experience.

Well, I obviously struck a nerve with Rob because he decided to post a personal attack against me calling me a troll and claiming that all of my points have no merit. Well, I have several thoughts in response to his unprofessional, shameful hit job:

1) I'm not surprised Rob resorted to such personal attacks. After all, the fact that he would take a confidential business meeting between employees of Microsoft and InstallAware ( negative impression, sleazy and unprofessional ) and post it on his blog tells a lot.

2) My observations about the shortcomings of WiX are very valid no matter how much he attempts to dismiss them as troll posts. I've been doing installation work for 12 years and whether he believes it or not, my knowledge of this space is well vetted.

3) His characterization of me as a `troll` is completely invalid. Per his own linked definition:

An Internet troll, or simply troll in Internet slang, is someone who posts controversial and usually irrelevant or off-topic messages in an online community, such as an online discussion forum, with the intention of baiting other users into an emotional response[1] or to generally disrupt normal on-topic discussion.

This website isn't an online discussion forum. It's MY blog where I post MY observations and opinions. I also invite other setup developers whom I trust to contribute their observations and opinions and allow readers to provide their feedback via comments to help balance the perspective. But there is no attempt to disrupt normal discussion because we choose what to discuss, not the online community. Therefore, I can not be a troll ( in this context at least ).

It's up to my readers to judge my content and decide to visit again or not. Based on the feedback I get and the growing number of repeat visitors, I believe I'm doing fine.

However, if Rob finds my opinion so objectionable, he is more then welcome to not visit my blog. I will continue to visit his blog though because while I don't agree with much of his ideological rhetoric ( custom actions are (generally) an admission of failure ) I have enough knowledge and experience to pick apart what I read and adopt the pieces that I find reasonable.

Anyways, that's the last I'm going to say on this matter. I'm much more interested in blogging about pushing the boundries of MSI to support managed code custom actions rather then simply accepting that it's wrong to do so. While certain people at Microsoft don't seem willing to step up and support this, the people at InstallShield have been stepping up I'm very busy putting together some sample projects to demonstrate why this is a good thing.


  1. I'm behind you all the way. There's nothing to be proud of with a no-UI installer. If I made one, I'd be fired before the files were done copying in my demo to management.

    And personal attacks are just petty. I'm sure you have better things to do than be on the defensive against things like that.

  2. You just lost me. This is kindergarten.

  3. Agreeing with both of the above comments. Make of this what you will...

  4. I find myself in an awkward position because I am friends at least on some level with both Rob and Chris. I won't pick any sides here, because I think that both of you are making good points.

    Dealing with WiX UI is a total PITA. I have done it enough now, that I have stored up UI templates and I am getting better about visualizing where the controls should be placed. That does not however mean it's an elegant solution. On the flip side, WiX is an excellent open source solution with broad community support.

    I hope this is something everyone can put behind them and move on. To Rob, I would say, as much as Chris' posts may be construed as rants or trolling, he makes good points and has the same problems as many other people. To Chris, I would say, Rob does WiX on his own time and InstallShield it is not, you can't really do an apples-to-apples comparison.

  5. I would never ask anyone to pick sides.

    I also understand that WiX is done on off time and I just absolutely hate that. As Bryan said:

    "I think he's hard on WiX because deep down he likes WiX. I can't help but feel the same way. I get frustrated at times because WiX feels like it's "right there" but there are idealogical things that keep it from becoming the whole tool I believe it could be."

    I once posted on this blog "Microsoft: Make WiX a Priority!" and I really mean that. As much as I like my friends at Acresso, I want to see WiX go WAY beyond it's current resource and idealogical constraints and be a first class member of the VSTS system capable of making that apples-to-apples comparison.

    But you are right, it's no where near there. But if you were to listen to the comments made from the community and it's leaders, you would believe that it is.

  6. I totally agree that WiX has way much to be desired regarding User Interface. And Rob's response seems low-blow, and I do feel that this is a case of ideology hampering progress.

    But I will say that WiX (and Rob) have great ideas regarding the use of WiX Fragments to distribute component definition back down to the developer (where it is best handled). Installshield's DIM concept is pretty lame. (And I flew up to Schaumburg for an invite-only lab when they were pushing this as the next great thing since sliced bread!)

    But I ask, why can't WiX fanatics and Installshield folks get along? Both tools have strengths and weaknesses... and the beauty of MSI technology allows you to mix and match tools to produce the best solution, overall.

    Here is my solution: roll out WiX, but use it to only to develop Merge Modules. Push Fragments to the devs in their Visual Studio projects for this.

    Then roll these Merge Modules into a Installshield project, and benefit from the excellent Installshield UI and (if needed) any Custom Action support which may be required.

    All this needs is some smarter build scripts. Pretty easily done.

    Oops, but I guess I'll miss that fancy Red Banner...