Jump to page content

Bug of the moment 2007-06-22

Fellow followers of The Daily WTF Worse Than Failure will have seen the More Like Didgeridon’t Error’d entry. One of the commenters referred everyone to Raymond Chen’s How does Add/Remove Programs get the size and other information? blog entry from July 2004.

The short answer is, “If the program doesn’t provide this information itself, Add/Remove Programs is forced to guess.”

Excuse me? If the installer is too lazy to fill out the uninstall records properly, Add/Remove Programs just makes something up? I could hardly believe this, but from other things I’ve read recently, sadly I can.

Microsoft’s corporate mentality seems to be – I’m learning – that it is their job alone to make sure everyone’s experience with Windows is flawless. If a program doesn’t provide proper uninstall information, try to guess what it should have said. Mostly this succeeds, I suppose, but then it goes spectacularly wrong and we all wonder what Microsoft were smoking. Of course, we blame Microsoft since we perceive them to be the origin of the bug.

This is insane. If a developer is too lazy or too stupid to write a proper installer, reject it. If their user base (or prospective user base) all complained that Windows rejects the installer as defective and refers them to the developer for a replacement, the developer would learn fast.

HTML is the most obvious and most prominent example of excessive permissiveness towards incompetence. Instead of a browser rejecting nonsensical code, it embraces it. I have yet, to this day, to figure out how Internet Explorer can take some of the astoundingly dreadful “HTML” (if, with all the errors, you can even call it that) and derive the author’s real intent from it. What I do know is that iCab’s changelog consists of a disproportionate amount of fixes put in place to work around defective sites. When devoted followers are relying on one man to code a program, precious time is being wasted trying to figure out why sites don’t work and how best to code the browser to generate the same output as Internet Explorer.

I wonder how deep this goes with Windows? How many problems with the system are related to trying to work around bad developers? Microsoft have a whole team devoted to patching people’s software to work on new Windows releases, often when the software is so badly written there is strictly speaking no way it could ever have worked in the first place. Also from Raymond Chen, see Tales of Application Compatibility (PDF). Maybe I am just a rotten toad, but I would go no further than naming and shaming such applications. In a nice way: “The following application(s) are … a bit iffy … and thus do not work with this new version of Windows. Please seek a replacement copy from the vendor(s).” Maybe it would delay people upgrading who find they have apps that need replacing, but you’d have to be a bit mad to jump the gun with an operating system upgrade anyway. Even Apple’s updates have come out broken. It would, though, put some more onus on people to write software properly.

As a programmer, it is my duty to do the job right. I won’t learn if I don’t know what I did wrong. There is no use in me being lied to that what I wrote worked when it didn’t. Nor is it comforting to know that screw-ups in Windows are the result of the operating system failing to guess what bad developers were trying to do.

The flip side, of course, is that we need to create an environment that isn’t booby trapped with unfair pitfalls for developers…

Posted 22nd June 2007 – Comments and questions?