Putting the backward in backward-compatibility


Some surprising backward-compatibility hacks in Windows

I remember when I first saw a Macintosh. It was the original 128K version and my first thought was, "How can they sell a computer without a 5 1/4" floppy?" Of course, using 3 1/2" floppies turned out to be a fine idea and so have various other bold decisions Apple has made to move away from old technology. Several come to mind: getting rid of the floppy drive entirely, switching from 68000-series processors to Power PC processors, and moving from OS 9 to OS X. Those changes caused some short-term pain and disruption but the result was better hardware and better software because the new stuff wasn't limited by the old technology. In operating systems and programming environments, it's often possible to ease a transition by "deprecating" a feature. That is, you tell programmers that it will go away at some point in the future so that they have time to fix their programs to do the same thing in a better way.

A while ago, I was clicking around geeky blogs rather than doing anything productive <wink> and came across Raymond Chen's blog. I don't know anything about Raymond that's not in his blog, but he certainly seems to be a smart guy and it appears that he works for Microsoft on Windows. (I don't mean to imply that I think that he speaks officially for Microsoft in his blog or anywhere else; rather, I mean only to suggest that when he talks about Windows I imagine that he knows what he's talking about.) I don't know beans about C programming under Windows and I'm not much interested in learning how to do it, but I find Raymond's blog interesting.

Two posts there amazed me. One is about how Windows will report the existence of some files that aren't there because MS-DOS 1.0 did. The other is about how programmers should get a particular piece of data in one way, but that Windows automagically generates it in another place because it was available there in a particular beta-test version of Windows 95.

That the folks at Microsoft write and support code that hacks around misfeatures from ten and twenty years ago is amazing to me. I imagine that there are examples other than those two. Carrying cruft like that around makes any software project more difficult. A large accumulation of it in an OS would be a nightmare.

Posted: Mon - November 17, 2003 at 11:19   Main   Category: 


©