A (not so crazy) reason for why Microsoft skipped ‘Windows 9’ — it would affect legacy code

Staff Writer

Windows 9 affecting legacy code

When Microsoft revealed Windows 10, it caught a lot of us off guard – what happened to Windows 9?! Well, Microsoft basically said that it was a marketing move as they didn’t think that Windows 9, and a single number iteration, captured the change that was coming to Windows. Their explanation didn’t satisfy many, and theories have already started sprouting.

A rather unique one was brought forth by a reddit user, claiming to be a Microsoft dev, /u/cranbourne. The user claims that calling it ‘Windows 9’ would result in errors with legacy code such as this:

if(version.StartsWith(“Windows 9”)) { /* 95 and 98 */ } else {

Looking at that, it seems rather wild. However, another user searched for this code, and found many examples of it online -- in software designed for Windows. Looking through the search, it does seem plausible. I first saw this in the subreddit /r/ProgrammerHumor, and could not make up my mind if it was not an elaborate joke. However, actually looking at some of the code in GitHub that has variations of this check, made me realize that, somehow, this is the theory that makes the most sense.

This is legacy code that was used as a shortcut (how many times do they come back to bit us? But we never learn…) in detecting whether the client was running Windows 95 or 98. And since there is legacy software using variations of this code, it could be a problem for Microsoft - a company that goes through great lengths to make sure enterprise software continues working on their iterations of Windows. Maybe the only real evidence against this theory is that Microsoft could have labeled Windows differently internally and in the code to avoid this, while still marketing it 'Windows 9.'