Newer software aimed at newer Windows versions usually had a code that checked the user’s Windows version. If the version began with a 9, it was interpreted as one of the Windows 9x operating systems, for which the software was unsupported. If that was the case, the user couldn’t run the software at all. Microsoft wanted to prevent such situation from happening with a new Windows release, so they skipped straight to 10.
There was a function that would give you a monotonically-increasing build number that you could compare against the build that any given feature was added in that people should have used, but there was also a function that gave you the name of the OS, and lots of people just checked if that contained a 9. The documentation explicitly said not to do that because it might stop working, but the documentation has never stopped people using the wrong function.
Newer software aimed at newer Windows versions usually had a code that checked the user’s Windows version. If the version began with a 9, it was interpreted as one of the Windows 9x operating systems, for which the software was unsupported. If that was the case, the user couldn’t run the software at all. Microsoft wanted to prevent such situation from happening with a new Windows release, so they skipped straight to 10.
There was a function that would give you a monotonically-increasing build number that you could compare against the build that any given feature was added in that people should have used, but there was also a function that gave you the name of the OS, and lots of people just checked if that contained a 9. The documentation explicitly said not to do that because it might stop working, but the documentation has never stopped people using the wrong function.