Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

that is exactly what I dislike about Microsoft. The right answer is to detect those dodgy applications and disable them, and notify the user that the program is "bad", thus providing a severe disincentive to software authors to ever do such things again.


That mechanism also exists, notably in Vista and 7 there were a number of older applications where Windows would display a warning prior to running it that the application has known incompatibilities and may not run correctly.

However, a user who just upgraded Windows and half their programs stop working will simply not upgrade. In many cases such dodgy applications are also never fixed because the vendor doesn't exist anymore, doesn't care, or the flaw is in some library they use and they don't really want to invest that much time to change it.

Besides, detecting such behaviour is pretty much the same as fixing it with a compat shim, since you have to do more or less the same work. So from MS's perspective the benefit of working around the buggy behaviour is much more prominent than trying to discipline developers by making users suffer.


Why should users pay for developers' poor choices? This is a great way to piss off people who would blame Microsoft.

There isn't a great answer to this that satisfies everyone.


Huh? That is kind of the deal isn't it - you pick your developer and if that developer makes bad choices, you get a bad product.

If we don't push back against bad practices by developers we never improve the quality of the ecosystem.

In this specific instance, the user has a choice - don't upgrade.


> the user has a choice - don't upgrade

That's how you get everyone stuck on Windows XP. There's no good choice for the user here–either you're on an old OS that's missing features or security updates, or you can't run software that used to work.


And thus we end up, over time, with an OS that is a pile of hacks upon hacks to workaround broken apps, severely limiting it's ability to provide a clean, sensible, performant set of OS services.

I regularly read The Old New Thing and just shake my head in wonder at how much more MS could have accomplished without that baggage.

I would much rather users were occasionally forced to upgrade their buggy software.


> I would much rather users were occasionally forced to upgrade their buggy software.

Yes, that's the ideal solution, but backwards compatibility overall is a huge can of worms that doesn't really have a good solution. In this case, it might not be possible to upgrade the software (e.g. it's unmaintained, or was contracted out, etc.)


Note that nowadays there aren't many of such compat hacks in the actual Windows codebase. Most applications can be coaxed to work by just shimming a few API calls and those shims can be kept separately and don't impact other software that doesn't need them. The simplest one of those would be the one that simply pretends to be an older Windows version for broken version checks to still work. There are others where HeapAlloc simply allocates a little more to prevent a buffer overflow, etc.

The OS architecture no longer suffers from such things.


That’s a very rosy outlook that doesn’t match with the few Windows devs I’ve spoken to.

It’s better now - because they moved to abstracting a lot of that stuff as you said - but the number of man hours spent on it and the knock on effects of the overall system design is non-trivial.

Plus, if they’d not had that policy they could have been where they are now in the early 2000s

Kind of like OSX was.


I think you fail to understand just how involved, expensive, and business critical some of this dodgy software actually is. Some of this crap software costs millions of dollars and takes years to upgrade.

Ignoring even the security implications, you can't simply not upgrade either as software doesn't exist in a vacuum. All the other software/hardware involved might need newer versions or bug fixes. Microsoft doesn't even support newer Intel chipsets in versions of Windows older than 10 -- that's only even possible because 10 is highly compatible with older versions of their OS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: