Possible Reason Behind Version Hop to Windows 10: Compatibility
First time accepted submitter ndykman (659315) writes The Independent reports that a MS developer has suggested a real reason behind the Windows 10 name: old code. More specifically, code that looks for "Windows 9" to determine the Windows version. Fine for Windows 95 or Windows 98, but not so great for a new operating system. The article includes a link that shows that yes, this would be a problem.
Its the same thing as with the whole Document and settings vs C:\users. There's always been a good way to get it, but most developers suck balls and won't spend the 20 seconds it takes to figure it out.
GetVersionEx(Inout_ LPOSVERSIONINFO lpVersionInfo);
Returns the major and minor versions, build number, platform id, service pack major and minor, and the product type.
It basically spits out all the crap in that appears on the bottom right corner of windows when you boot up in safemode.
Also unlike the stupid marketing names the OS versions actually make sense.
Windows 8 returns version 6.2.
I call this hogwash. When you ask Windows what version it is in software, it doesn't return its marketing name (Windows 95, Windows 2000), it returns it's platform ID (1 for DOS based, 2 for NT based), and its version numbers in major, minor format. Windows 95 returned 4.0 (platform 1), Windows 98 returned 4.1 (platform 1). Windows 2000 returned 5.0 (platform 2).
In fact, I can't speak for the latest versions of Windows (because it has been a while since I've programmed), but even as late as Windows XP, a call to "get version" returns something completely different from the marketing version number/name.
For example, under Windows 95, GetVersion() would return "4.0." Under XP, it reports NT 5.1 or NT 5.2.
http://en.wikipedia.org/wiki/L...
Cogito, igitur comedam pizza.
I'm reminded of checking for browser version in Javascript when you need to hack around a limitation or non-standard here or there (especially back in the IE6 days). Anyone worth their salt said "You don't ask the browser what it is, you ask what it can do" because the easy ways to check were also easy to spoof. So it was better to see if it threw an error when you did X, or if you could access property.Y, etc., then use those results to figure out which browser you were running in. I don't think it's done as often these days, partly because of engines catching up and partly because of frameworks doing it for you.
Anyway, I don't know how trivial it would be to spoof the system information, but relying on the system to report its proper version doesn't seem like a good idea to me. Speaking of version, code like the last link is looking at the marketing name when looking at the actual version (i.e. Windows 6.1) would be better. Maybe Microsoft should just go with the internal version number: it will cause as much marketing confusion as Windows 10, avoid the "Windows 9" checks, and make the internal/marketing names more consistent.
The search in the article shows mainly Java applications.
But the coding problem isn't specific to Windows. Opera suffers from this problem and so does every web browser that had a "version 10" that browser strings looked only for "1" or version 20 that looked for a "2" like Firefox.
Opera still by default says its Opera 9.8
But ultimately, garbage code needs to be thrown away and programmers need to stop doing stupid things like this.
That's a load of BS. Is there even an API that returns the "marketing" version of the OS name? I know of no way to programmatically get the text "Windows 95" or "Windows 98", etc, in the Windows API, unless I build that string myself. The APIs that return the OS version use a completely different versioning convention (one that actually makes sense and is consistent). Maybe there is some way to dig through the registry and find that, but any app doing that deserves to be broken anyway.
Further, the example and "proof" in that second link is also a load of crap. That is only via some Java API, which does exactly what I said above, which is turn the actual internal version into some higher-level OS name. Trust me, MS doesn't give the slightest concern about any broken Java apps.
They named it Windows 10 for marketing reasons. End of story. Quit being retarded.
Better known as 318230.
It’s long been used as shorthand in electronics so circuit diagrams don’t get cluttered up with zeros, i.e. a 2,200 Ohm resistor is often shortened to 2K2 Ohms, 1,500,000 Ohms is 1M5.
Blank until
Someone at MS is just pulling this out of their asses to try and cover that Microsoft has no clue what they are doing.
So they were able to easily query the code for a few thousand applications online that made this version check mistake. Big deal.
Compare this to how many applications out that that have broken because of other minor OS changes combined with bad programming. I've seen piles of that myself, and Microsoft never bothered this hard to keep compatibility for any of those.
I’m also an electronic technician, I have reprints of articles going back to the 1930s from Europe, the UK and Australia which use the notation I described, and you can even find it stamped on components from those regions. Either is acceptable as far as I’m concerned, as long as the nomenclature is consistent.
Blank until