4 ms·
>I wonder why these protections aren’t enabled by default. Because bugs exposed by a change in Windows are used to denigrate Windows, not the developer of the
by benjaminpv 12y ago
>I wonder why these protections aren’t enabled by default.
Because bugs exposed by a change in Windows are used to denigrate Windows, not the developer of the buggy app[1].
[1]: http://blogs.msdn.com/b/oldnewthing/archive/2003/12/23/45481.aspx http://blogs.msdn.com/b/oldnewthing/archive/2003/12/23/45481...
- mikeash 12y agoUnfortunately, this sort of thing seems to snowball. MS bends over backwards to preserve backwards compatibility, so third-party vendors basically have free reign to abuse the OS, requiring MS to bend over backwards even more to accommodate them, and on and on. Apple, for example, had much less of a problem with this even before the days of the App Store and the accompanying restrictions, because developers largely knew that if they depended on undocumented behavior there was a good chance that their app would break and Apple wouldn't fix it for them.
- ntakasaki 12y agoThe other side is that Apple is not preferred in many corporate shops exactly because of that.
- mikeash 12y agoThat's an excellent point. Neither approach is perfect, just different tradeoffs.
- bunderbunder 12y agoAnd how. My company relies on a lot of in-house software that was built against Microsoft technologies from the 1990s, and are still supported. We have plenty of resources; we could port/rewrite them if we needed to. But that isn't cheap, and I imagine we've saved a lot of money over the years thanks to Microsoft's devotion to backward-compatibility on Windows. Not just development cost, but cost related to software defects we have not created because we've been able to leave already-working software in place. (Web applications that rely on ActiveX, on the other hand. . .)
- twistedpair 12y agoThere are many stories to MS doing this. There are actually tons of conditionals in the MS source and kernel explicitly to fix broken vendor code. Look up the SimCity fixes they put in the Win Malloc to fix bugs Maxis wouldn't so that upgrades wouldn't break the game, despite the bug being entirely Maxis' fault.
- ygra 12y agoSuch things are no longer fixed directly in the kernel or other OS code. They have shims that can be enabled on a per-application basis that sit between system calls and the program. Those can then fix such things, e.g. lie about the OS version, allocate a little more than requested to avoid buffer overruns, etc. Windows then ships with a database which application requires which shims; in Vista that included some 5500 programs.