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

It tends to happen with really poorly written niche industry-specific software that Microsoft don't realise exists, so can't test.


Yes, I'm in exactly that situation (making industry specific windows desktop software) so I'm very interested in hearing about the specific issues here.

Obviously any developer can screw up and do thigs like "if !winVersion.StartsWith(...)" and there is not much microsoft can do about that, apart from naming windows 9 windows 10...

But even broken and buggy API's tend to be maintained by microsoft just because they can't test all the software floating around that depends on it. So it's usually very very hard to accidentally make a program run on Windows version N but not on Windows Version N+1


Occasionally, bugs get fixed despite programs depending on those bugs. They do not guarantee complete bug-compatibility between releases, or even within the same release - to do so would imply they could never fix a bug without writing a new function for the bugfix and persuading all developers to use the new function and release an update, then convincing everyone to use the updated software, even when there's no known software which depended on the buggy function's behaviour.

It used to be that when Microsoft found that a specific program was getting in the way of a bugfix, they'd detect the program and perform the buggy behaviour, or they'd patch the software on-the-fly. I have no idea if they still do this.


Don't forget that they can also modify any API in a way that fixes the bug but also behaves in the legacy way under "compatibility mode".


There's one game that depends on winmm callbacks being called on a separate thread because the game actually calls SuspendThread() from within the callback! During the mmdevapi move around Vista/7, MS switched to calling the callbacks from the application thread and the game now deadlocks. It does work in compatibility mode, though.

https://bugs.winehq.org/show_bug.cgi?id=3930#c71




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: