software architecture

Windows is in fact a big ball of mud

Welcome to the Microsoft Corporate Web Site

Bill Gates, co-founder and chief software architect of Microsoft, testified in person at the antitrust trial.

I follow this story but not too closely. I know what I think about it and it’s not likely I’m going to hear anything to change my mind. In short, I do think Microsoft is guilty of using it’s considerable influence to shape the industry to its liking, and it’s obviously not above threats and open coercion. Calling Steve Jobs to ask how to announce that Microsoft will stop producing Macintosh software is not the kind of move I’d associate with an entity that wants to play fair.

But this week’s testimony was interesting. I know a very small amount about software design and architecture but my minimal understanding tells me that modular design is good: the big ball of mud is not. It sounds to me that, given Mr Gates’s insistence that Windows can’t be disassembled to permit other application developers or OEMs to supply components in place of Microsoft’s own version suggest that Windows is in fact a big ball of mud, eg just a lot of slapped on goo that needs constant slapping or it will fall apart (service packs and hotfixes, anyone?)

Given that Windows XP is supposed to be a from the ground rewrite, with no legacy cruft from the old DOS-undergirded Windows, why isn’t designed to permit modules to be operated on without wrecking the whole? Surely this would be to Microsoft’s and their customers’ benefit (remember them?), yielding products that are more easily upgraded or patched without any unfortunate side-effects.

Is it hard to do that kind of thing? Probably. Is it worth it? Definitely. So what to make of the world’s largest software development shop failing to do it? Is there perhaps another reason to do it wrong? Could it somehow be in their interest to ship products that are hard to unbundle?