Report: Microsoft Skipped Windows 9 Due to Legacy Programming Conflicts

Steven Bogos

The Taco Man
Jan 17, 2013
9,354
0
0
Report: Microsoft Skipped Windows 9 Due to Legacy Programming Conflicts


A Microsoft dev reports that many third-party products use the code "If Windows 9, then Windows 95, 98."

Earlier this month, Microsoft surprised... pretty much everyone, by announcing that the upcoming version of Windows would reddit [http://www.escapistmagazine.com/news/view/137744-Microsoft-Windows-10-not-Windows-9] that the reason for skipping nine is a lot simpler than you'd think.

Essentially, he claims that internal rumors revealed a lot of third-party products use some variation of the following code:
if(version.StartsWith("Windows 9"))
{ /* 95 and 98 */
} else {
What this means is that a lot of these programs would have had trouble interacting with Windows 9, as they would keep thinking it was Windows 95 or 98. Skipping nine and going straight to 10 was a pragmatic solution to avoid this.

It certainly makes a lot of sense, but when I reached out to Microsoft with this information, they refused to confirm or deny it. All I got from them was the following non-response:

"Windows 10 carries Windows forward into a new way of doing things. It is not an incremental change, but a new Windows that will empower the next billion users." - A Microsoft spokesperson.

I've reached out again to them for further clarification, so until then, this should only be taken as a very plausible rumor. It should be worth noting that Windows 10 will not be the 10th, or even the 9th iteration of Windows, so I guess it doesn't really matter what number they decide to go with.

Source: reddit [http://www.reddit.com/r/technology/comments/2hwlrk/new_windows_version_will_be_called_windows_10/ckwq83x]

Permalink
 

Baresark

New member
Dec 19, 2010
3,908
0
0
This is the only thing that makes sense. People were all like, "it's because they want to distance themselves from 8 because it's so bad." Ridiculous. When something is compatible with "Windows 9x"... a new operating system called Windows 9 would present problems.
 

Diablo1099_v1legacy

Doom needs Yoghurt, Badly
Dec 12, 2009
9,732
0
0
........So because it had number 9 in it's title, it borked the entire OS?
I understand that programming is hard, I've failed first year C#, but when you read it like that, it's kinda laughable, esspecially with the amount of resources that MS has.
 

Kieve

New member
Jan 4, 2011
128
0
0
Steven Bogos said:
"Windows 10 carries Windows forward into a new way of doing things. It is not an incremental change, but a new Windows that will empower the next billion users." - A Microsoft spokesperson.
That is a hilariously awful response. Corporate jargon at its finest - use as many words as you can to say as little as possible...
That said, the spokesperson quoted here probably has no idea whether this is accurate or not. It seems like a weird kind of "lazy programming shortcut" to use, but I'd believe there's coders out there who would go that route. Not like anyone would envision the weird naming jumps M$ has used in the past: 3.1, 95/98, XP, Vista, 7, it starts to look pretty damn arbitrary, really.

Not that I'm personally invested either way. Using Win7 now, and only upgraded to that from XP because of the 3gb RAM limitation, and lack of support from certain recent games. They'll be on version "Zeta-42 Tetra-core Edition" before I upgrade again, probably.
 

The_Great_Galendo

New member
Sep 14, 2012
186
0
0
Diablo1099 said:
........So because it had number 9 in it's title, it borked the entire OS?
I understand that programming is hard, I've failed first year C#, but when you read it like that, it's kinda laughable, esspecially with the amount of resources that MS has.
No, you missed the point. It's not that Microsoft had problems with the version naming (well, probably. It's not like they'd admit it if they did), it's that other devs, when writing programs, rather than write

if(Windows 95 or Windows 98)
do stuff;

wrote instead

if(Windows 9*)
do stuff;

which would cause problems with any operating system whose name starts with "Windows 9". Since none of these legacy programs would run correctly on an operating system called Windows 9, Microsoft decided to skip the name entirely.
 

Diablo1099_v1legacy

Doom needs Yoghurt, Badly
Dec 12, 2009
9,732
0
0
The_Great_Galendo said:
Diablo1099 said:
........So because it had number 9 in it's title, it borked the entire OS?
I understand that programming is hard, I've failed first year C#, but when you read it like that, it's kinda laughable, esspecially with the amount of resources that MS has.
No, you missed the point. It's not that Microsoft had problems with the version naming (well, probably. It's not like they'd admit it if they did), it's that other devs, when writing programs, rather than write

if(Windows 95 or Windows 98)
do stuff;

wrote instead

if(Windows 9*)
do stuff;

which would cause problems with any operating system whose name starts with "Windows 9". Since none of these legacy programs would run correctly on an operating system called Windows 9, Microsoft decided to skip the name entirely.
Ohhhh...Cheers, Thanks ^^;
 

gardian06

New member
Jun 18, 2012
403
0
0
Diablo1099 said:
........So because it had number 9 in it's title, it borked the entire OS?
I understand that programming is hard, I've failed first year C#, but when you read it like that, it's kinda laughable, esspecially with the amount of resources that MS has.
basically all these programmers are doing is parsing the string, and only reading "as much as necessary" in that saying because windows 95/98 used a close enough shell structure you could run either as though it was a windows 98 program, and only need to read deeper at very specific points. in the long run most of the time when a program is handed what the operating system is it will get one of two things either just the name of the OS, or the number version designation, so if the system after doing this simple check, and reaching the wrong conclusion would then try to pass only 32-bit color information, and a lot smaller variables (smaller calculations with more error in terms of physics as the like), so instead of turning to several 3rd party developers, and say 'you need to go back, and release patches to all your products that do this simplistic check' then programs will not behave correctly at the least, and at the worst tell you to "upgrade to a newer version of windows"

because the simpler answer might have been to just release a NDA covered document for windows developers saying that you can do this check, but read the next character, and if it is a decimal then "Windows9", and if a number then "Windows95/98"
 

gamegod25

New member
Jul 10, 2008
863
0
0
Kinda funny how programmer laziness or just shortcuts, can lead to unexpected issues later on.
 

joshuaayt

Vocal SJW
Nov 15, 2009
1,988
0
0
I've only been programming for a couple of years, but why not just call windows 9 something different internally? If the problem is developers using "Windows 9", then "Windows nine" would be fine.

if(version.StartsWith("Windows 9"))
{ /* 95 and 98 */
}
else if (version.StartsWith("Windows nine"))
{/* windows 9 */
}

It's not like we have to worry about consistency when we're specifically referring to individual versions
 

The Rogue Wolf

Stealthy Carnivore
Legacy
Apr 3, 2020
12,067
1,703
118
Stalking the Digital Tundra
Gender
✅
I was expecting a weak and PR-filled reason for this (and that's what we got in the official response) but yeah, the utter laziness of programmers back then is something I'll easily believe in as a reason. Though this:

joshuaayt said:
If the problem is developers using "Windows 9", then "Windows nine" would be fine.
Is entirely reasonable.
 

CrystalShadow

don't upset the insane catgirl
Apr 11, 2009
3,829
0
0
joshuaayt said:
I've only been programming for a couple of years, but why not just call windows 9 something different internally? If the problem is developers using "Windows 9", then "Windows nine" would be fine.

if(version.StartsWith("Windows 9"))
{ /* 95 and 98 */
}
else if (version.StartsWith("Windows nine"))
{/* windows 9 */
}

It's not like we have to worry about consistency when we're specifically referring to individual versions
Yeah, you do have to wonder. I'm a programmer... (Not a very good one, but still), and I am well aware of these kinds of shortcuts and the like...

Obviously people that coded programs that were checking for, say windows XP vs windows 95/98 would probably not have had the foresight to consider an as yet unreleased future version of windows...

But there are plenty of things the windows devs could have done...

Many versions of windows had codenames... such as 'longhorn' (can't remember which that was though... XD).

On top of that, there are actual internal version numbers too.

Windows 2000 is, internally, 5.0, while XP is 5.1

Similarly, Vista is 6.0, while Windows 7 is 6.1

Admittedly, that's confusing, to say the least. (windows 7 is version 6.1? So... 7 = 6?)

But... It is one already existing thing they could have used instead behind the scenes...

Although I guess it does depend on what the legacy code is actually checking... If it's checking a specific string, or variable, you'd have to ensure that specific variable doesn't mess up legacy code. New code doesn't matter; You can tell programmers what they should do with an OS version that already exists... But you cannot do that retroactively to old code...
 

mysecondlife

New member
Feb 24, 2011
2,142
0
0
Similar to this story, I think I read something about programmers working over-time back in 1999 to makes sure that their program works without failure once they meet new millennium (year 2000).

I was only in grade school back then so I could be remembering it wrong.
 

CarlsonAndPeeters

New member
Mar 18, 2009
686
0
0
If this is really the worry, why not just give the OS a name a la XP or Vista? Seems like it would be a much more sensible solution to the potential problem.
 

Slegiar Dryke

New member
Dec 10, 2013
124
0
0
Diablo1099 said:
........So because it had number 9 in it's title, it borked the entire OS?
I understand that programming is hard, I've failed first year C#, but when you read it like that, it's kinda laughable, esspecially with the amount of resources that MS has.
It becomes even more facepalm worthy when you know some about the entirety of the source code for Microsoft OSes. Despite getting the job done, they're HOPLESSLY overbloated in their design. I can't remember where I saw it, but there was a list once of the major OSes at the time, not too long after 7 came out....and Vista for instance, ran somewhere in the ballpark of 50 million lines of code. for comparison, linux strains run the range of 2 to 15 million.
 

ryazoph

New member
Aug 5, 2014
30
0
0
This is probably a bogus rumor.

Open cmd prompt.

Type in Ver.

You get:

>ver

Microsoft Windows [Version 6.3.9600]


Not Windows 8.
 

Callate

New member
Dec 5, 2008
5,118
0
0
Sadly, I can believe that this is possible.

Bad programming. The gift that keeps on giving.
 

FEichinger

New member
Aug 7, 2011
534
0
0
While it kinda sounds like something programmers do (yeah ... we are damn lazy, but this is also a memory optimization thing), legacy software on Windows 9/10 should no longer be an issue. Half the software this would affect didn't run ever since Vista anyway, regardless of compatibility modes. Speaking of which: Software affected by this bug should be able to run in 8 compatibility mode, if this really is the only thing keeping them from running on 9/10.

My money is still on Microsoft PR thinking "Hey, we should probably fix that whole 'every other version sucks' thing by 'skipping' a version!" instead.
 

Strazdas

Robots will replace your job
May 28, 2011
8,407
0
0
This is a false. Windows versions do not work like that. Windows 10 has a windows version of 6.4 (6.0 being vista and each consequitive version getting a +0.1). No program checking for windows version will EVER see "windows 9". This was only true for 95/98 because they did not use NT numbers. every OS afterwards used NT numbers and unless we go to NT9 (which is at minimum 3 OS away now) we may see this and evne then not, because the version will be "NT 9.0" and not "windows 9".

Callate said:
Sadly, I can believe that this is possible.

Bad programming. The gift that keeps on giving.
Its not, thats not how windows versions work, this is a false rumor.

CarlsonAndPeeters said:
If this is really the worry, why not just give the OS a name a la XP or Vista? Seems like it would be a much more sensible solution to the potential problem.
Names are just that, names. they are never used in programming. XP is Windows NT5.1 and Vista is Windows NT6.0 as far as any program looking for version is concerned. this is why on some old games you may get an error of "unrecognized NT version". programs only see NT versions since win 2000, 95 and 98 were exceptions. this problem described cannot happen.

Slegiar Dryke said:
...and Vista for instance, ran somewhere in the ballpark of 50 million lines of code. for comparison, linux strains run the range of 2 to 15 million.
Vista was bloated beyond belief and unstable as hell. but you should probably take into account that windows runs far more libraries that add to this number to, gasp, actually run things.