Why do I hate Microsoft? Let me count the ways….

For various reasons, I’ve had to deal with a large number of Microsoft systems (and Microsoft problems) a lot recently. And of course, it’s been frustating as all hell. But after having fighting through a large number of different problems, I’ve come to some conclusions about how and why it’s been so frustrating to me.

The fundamental problem is that there are no real diagnostic tools which are avilable. Under Linux, if something strange happens, I can look at the various syslog files, or look at a ps listing to see what a process is doing, or in an extreme case, use lsof or strace to see what’s going on.

With Windows, if an a Windows Internet Explorer service pack 2 install hangs at 88% for 10-15 minutes, there’s not much I can do other than let it sit, or cancel it. There are no tools to figure out what the heck is going on.

Or if the ethernet interface on my Windows laptop suddenly stops functioning, and the device manager simply says, “there was an error initializing the device driver”, I have absolutely no idea what actually was wrong, or how to fix it. All I could do was to try several times to remove the network device, and then rebooting, and hoping Windows would notice the new hardware, and attempt to do something sane with this. Why it suddenly started worked after the third time I tried doing this, and not after the first or second time, I have no idea.

All of this was summed up by a friend at a BBQ as follows: “With Unix, you know you’ve found the problem before you fix it. With Windows, you don’t know that you’ve found the problem until after you’ve fixed it.” (And sometimes after you’ve fixed it, you still don’t know what the problem was.)

There is an old joke in the BSD fortune file about Brian Kernighan’s car: its only instrument is a big question mark on the dashboard, which lights when something goes wrong. According to the joke, Dr. Kernigham explained this by saying: “The experienced driver will know what’s wrong.” What I’ve found is this is actually far more appropriate for Windows than Unix. For anything other than most routine problems, Unix systems have far better diagnostics available to me than under Windows.