November 2006


For months, I’ve been trying to track down a nagging problem with Windows XP on one machine. I can logoff and shutdown without any problems through my account, but when others logon, they can neither logoff nor shutdown. Usually, RPC PDP server doesn’t respond to the shutdown event and everything is hosed after that. My guess is the XP eventually shuts down, but that’s often 10 minutes or more, which is well past the limits of my patience.

I think I finally solved the problem. There are rumors that shutdown problems are usually due to misbehaving device drivers. I had not installed any device drivers in years, so I don’t know why that should cause trouble. More importantly, why would one account shutdown fine, but others cause trouble? Eventually, I found some posts pointing to Lexmark/Compaq inkjet driver bugs. I don’t use inkjet printers anymore (that’s a rant for another day!), so I uninstalled the driver. That seems to have done the trick, or so it seems.

This leads me to deeper questions about the internal workings of Windows XP. I can understand that misbehaving code at any level can cause trouble, but what I don’t understand is why the entire operating system halts or at least acts like it’s lost its mind. Maybe I’m missing something, but I just don’t think an operating system should fail if one driver acts badly. In the worst case, the OS should nuke that process and move on. Sure, this might break something, but what’s the alternative? Something is already broken, so waiting indefinately won’t fix the problem.

Over the years, Windows has increased in complexity. This is not entirely the fault of Microsoft. To their credit, they have done their best to maintain backward compatibility, even if it hurts. The downside is that lots of legacy code hangs around and likely never gets fixed. Who knows what will happen if it does get fixed? They just keep adding code resulting in an ever increasing code base that becomes harder and harder to maintain.
The real solution, IMHO, is to start over. I think Microsoft realizes this and has tried to start over with Longhorn. The problem is that it has taken them decades to get to this point and it’s not a simple matter to build something completely new while maintaining backward compatibility. There have been plenty of articles written about Longhorn development woes. Even with all the resources of the worlds largest software company, it’s simply too hard of a problem to solve easily.

In contrast, Apple seems to have dealt with the problem of a flagging OS by throwing it out and starting over. Clearly, it can be done. The transistion from MacOS 9 and MacOS X was by no means smooth sailing, but it was a necessary step. Without it, the Mac would probably have failed completely in the market. After the transition, MacOS has emerged as a stable, reliable operating system.

It remains to be seen if Microsoft can reinvent Windows. I mean really reinvent it, not just add features or improve the look and feel.

A friend sent me a link to an excellent article about Web 2.0, it’s written by Tim O’Reilly. If you believe Tim, Web 2.0 is more than AJAX and cool web pages. It’s all about collaboration and applications that get better as more people use it. eBay, blogs, and wikis are some examples. Read the article, it has some very interesting insights.