Gye Greene's Thoughts

Gye Greene's Thoughts (w/ apologies to The Smithereens and their similarly-titled album!)

Tuesday, April 08, 2008

Props to Microsoft

Even though it's great fun to slag on Microsoft (no derision intended to Slag, the excellent blogger), I was **really** impressed by this (thanks to Old Roommate for the link that led me to this link...).

------------------------

Raymond Chen is a developer on the Windows team at Microsoft. He's been there since 1992, and his weblog The Old New Thing is chock-full of detailed technical stories about why certain things are the way they are in Windows, even silly things, which turn out to have very good reasons.

The most impressive things to read on Raymond's weblog are the stories of the incredible efforts the Windows team has made over the years to support backwards compatibility:

Look at the scenario from the customer's standpoint. You bought programs X, Y and Z. You then upgraded to Windows XP. Your computer now crashes randomly, and program Z doesn't work at all. You're going to tell your friends, "Don't upgrade to Windows XP. It crashes randomly, and it's not compatible with program Z." Are you going to debug your system to determine that program X is causing the crashes, and that program Z doesn't work because it is using undocumented window messages? Of course not. You're going to return the Windows XP box for a refund. (You bought programs X, Y, and Z some months ago. The 30-day return policy no longer applies to them. The only thing you can return is Windows XP.)

I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.

This was not an unusual case. The Windows testing team is huge and one of their most important responsibilities is guaranteeing that everyone can safely upgrade their operating system, no matter what applications they have installed, and those applications will continue to run, even if those applications do bad things or use undocumented functions or rely on buggy behavior that happens to be buggy in Windows n but is no longer buggy in Windows n+1. In fact if you poke around in the AppCompatibility section of your registry you'll see a whole list of applications that Windows treats specially, emulating various old bugs and quirky behaviors so they'll continue to work. Raymond Chen writes, "I get particularly furious when people accuse Microsoft of maliciously breaking applications during OS upgrades. If any application failed to run on Windows 95, I took it as a personal failure. I spent many sleepless nights fixing bugs in third-party programs just so they could keep running on Windows 95."

----------------------

But, that's apparently the "Old Microsoft." ON THE OTHER HAND (same web article)....

-------------------

"Microsoft needs to give you a reason to buy Longhorn, and what they're trying to pull off is a sea change, similar to the sea change that occurred when Windows replaced DOS. The trouble is that Longhorn is not a very big advance over Windows XP; not nearly as big as Windows was over DOS. It probably won't be compelling enough to get people to buy all new computers and applications like they did for Windows."

----------------

And etcetera.

It's a good article; go take a look. It gots some good inside scoops.

--GG

2 Comments:

At April 13, 2008 1:04 AM, Blogger slag said...

GG: I agree that backwards compatibility is a real bugaboo that MSFT has to deal with. Mac has similar issues and, as a result, the upcoming release of Photoshop won't be available for Mac. To some extent, MSFT has brought a few of the problems on themselves by withholding their code base and plans from other software developers. That said, it ain't easy when you've got a ton of variously crappy versions of software out there developed for Windows platform.

See that--that's my way of being nice about PCs. I guess I need to work on it :).

 
At April 13, 2008 6:39 PM, Blogger Gye Greene said...

Aww -- it **is** great sport to pick on Microsquish.

According to one of this guy's articles, Apple is actually pretty bad at legacy. In my parents' household, we've had a Apple II-GS, a Mac Classic, Mac LC, and an iMac (or something; it's running OS X).

To my memory, none of them could use software or read floppies from the previous versions; whereas Win XP can run a fair amount of Win98 apps; and WinXP can read DOS and Win 3.1 floppies -- the analogue of Mac OS X reading something from a Apple II-GS or Mac Classic.


--GG

 

Post a Comment

<< Home