Slashdot Mirror


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.

71 of 349 comments (clear)

  1. Re:Windows 9X by ArcadeMan · · Score: 5, Funny

    Windows 9.8, Secure Edition

  2. 11 by Jamu · · Score: 5, Funny

    It would have been better if they'd gone with Windows 11. One better.

    --
    Who ordered that?
    1. Re:11 by JustOK · · Score: 5, Funny

      +11 Spinal Tap

      --
      rewriting history since 2109
  3. How badly coded are Windows applications? by ArcadeMan · · Score: 5, Insightful

    If something as stupid as the name of the operating system can trip up some applications, what about the rest of the code?

    Instead of giving programmers dozens of ways of checking and doing things, they should be forced into doing it one way. Easier to prevent mistakes, check for errors, etc.

    1. Re:How badly coded are Windows applications? by CaptainDork · · Score: 5, Funny

      Ah ... grasshopper ...

      You will learn as, you progress in your journey, that convenience is a forever code.

      I give you, Y2K.

      --
      It little behooves the best of us to comment on the rest of us.
    2. Re:How badly coded are Windows applications? by thegarbz · · Score: 5, Insightful

      Major fallacy right there. This has nothing to do with windows applications, and nothing to do with giving programmers ways of checking things.

      This has everything to do with bad programming, and no Mac and Linux are most definitely not immune from this either. Windows has an API to determine the version number, just like Linux has a way of determining it too. The problem is when programmers don't know or understand the API that things break. It's not even a case of giving programmers different ways of checking things. Different APIs are there for different reasons, the problem is idiot programmers who use the response of one API to infer information they should otherwise have gotten from another.

    3. Re:How badly coded are Windows applications? by K.+S.+Kyosuke · · Score: 5, Interesting

      Microsoft has a history of treating broken apps very gracefully; this explanation seems perfectly plausible and very much in line with what Raymond Chen writes about on his Old New Thing blog.

      --
      Ezekiel 23:20
    4. Re:How badly coded are Windows applications? by Anonymous Coward · · Score: 5, Informative

      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.

    5. Re:How badly coded are Windows applications? by steelfood · · Score: 5, Interesting

      It's also rather short-sighted, not to mention lazy, to look for "Windows 9.*". I mean, Windows began with version numbers (Windows 1.0, Windows 2.0, Windows 3.0). There's no reason to think that Microsoft wouldn't go back to version numbers.

      At the very least, look for the string "Windows 95" and "Windows 98", since there are really only two versions of Windows relevant to the "Windows 9.*" search string. I know hindsight is 20/20, but this one really was avoidable by the simple principle of not being lazy (even if ignorant).

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    6. Re:How badly coded are Windows applications? by PPH · · Score: 5, Funny

      Leave it to the software industry to call the Year 2000 problem 'Y2K'. That's how they got into trouble in the first place.

      --
      Have gnu, will travel.
    7. Re:How badly coded are Windows applications? by Farmer+Tim · · Score: 3, Informative

      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 /. makes another boneheaded UI decision.
    8. Re:How badly coded are Windows applications? by Dynedain · · Score: 2

      There was a Windows 97 as well (service pack + enhancements really), but it set the example of MS using year numbers to indicate versions.

      That fell apart with Windows ME and XP, but not Win2k. (I had uniformed people swear to me that they were on Win2K because they were running WinME)

      And back in 1999, who would have thought that Microsoft would return to major release numbers instead of using the year? If they stuck with the year nomenclature it wouldn't have been a problem for another 90 years.

      No.... this really comes down to not knowing, and not using, the API provided to you by the OS for handling version detection. Relying on string (or worse, numeric) comparison to do your detection is a recipe for disaster. This is exactly why all modern Javascript libraries do feature detection instead of relying on User-Agent strings.

      --
      I'm out of my mind right now, but feel free to leave a message.....
    9. Re:How badly coded are Windows applications? by CaptainDork · · Score: 2

      I am an electronics technician and have been one since 1964 and I've never heard of that nomenclature.

      It's 2.2 K, and 1.5 M.

      Period.

      But I'm America-centric which often bites me in the butt. :)

      --
      It little behooves the best of us to comment on the rest of us.
    10. Re:How badly coded are Windows applications? by Farmer+Tim · · Score: 3, Informative

      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 /. makes another boneheaded UI decision.
    11. Re:How badly coded are Windows applications? by fluffy99 · · Score: 4, Insightful

      I am an electronics technician and have been one since 1964 and I've never heard of that nomenclature.

      It's 2.2 K, and 1.5 M.

      Period.

      But I'm America-centric which often bites me in the butt. :)

      I'm very surprised you haven't seen this, or the similar notation on ceramic caps. It's used simply because a decimal is easy to miss when printing on small components.
      http://www.electronicsandyou.c...

    12. Re:How badly coded are Windows applications? by FatdogHaiku · · Score: 2

      To be fair, one link cited this:
      String os = System.getProperty("os.name");
      if (os.startsWith("Windows 9") || os.equals("Windows Me")) {
      throw new RuntimeException(

      For my money, anytime Windows Me is detected you should throw an exception, a flag, and maybe a fit...

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    13. Re:How badly coded are Windows applications? by dbIII · · Score: 5, Interesting

      I had a Y2K bug introduced in 2008 in Macrovison's piece of shit "protection" software, flexlm, which stopped me running the software I had paid for because a perpetual licence was dated "00" and so was the year 2000.
      The phone support guy had never heard of the Y2K bug!
      It took a week and a half to sort out and meanwhile three people in the office had to work around it instead of using the software that was "protected". And people wonder why I prefer open source software.

    14. Re:How badly coded are Windows applications? by AK+Marc · · Score: 2

      Nope, there was never a Windows 97. There was a Windows 95 pirated version with an edited splash screen, and there was a Windows 98 version released in 97 (Win98 alpha), but Microsoft never released or badged anything as Windows 97, and no version ever identified as that internally.

    15. Re:How badly coded are Windows applications? by chuckugly · · Score: 3, Funny

      I'm not sure an OS that makes Java fail to run is completely bad.

    16. Re:How badly coded are Windows applications? by shutdown+-p+now · · Score: 4, Interesting

      The search in the article shows mainly Java applications.

      It's worse than that, actually. It's Java Standard Library. In JDK 7, at that, which is, what, three years old?

    17. Re: How badly coded are Windows applications? by ArcadeMan · · Score: 3, Funny

      the problem was the mass media got hold of a 'possible' problem that 'might' affect 'some' computers and spun the issue to be so large as to throw civilization back to the dark ages

      Which is silly, really. The worst that could have happened is to throw civilization back to 1900.

    18. Re:How badly coded are Windows applications? by CaptainDork · · Score: 2

      I forgot about this but ...

      I read about people hardening systems against Y2K and then testing by changing system clocks forward to "see what would happen."

      What would happen sometimes is that their license would expire and they would have to explain what they did and ask to be forgiven.

      --
      It little behooves the best of us to comment on the rest of us.
    19. Re:How badly coded are Windows applications? by Bigjeff5 · · Score: 2

      I thought the whole point of Java was that it was supposed to be platform independent.

      Why the hell should a Java developer ever need to find the OS name and version? I can understand needing certain features to run properly, but who cares if it's Linux or OSX or Windows that has the feature you need? They should only need the Java version, and the feature available. If the same OS feature exposed by Java works differently on different platforms, that's a major failure of Java's.

      If you're writing Java software that is only intended to work in Windows, you're using the wrong language.

      (Please note that, although this is only my personal opinion, if you disagree you're wrong.)

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    20. Re:How badly coded are Windows applications? by Bigjeff5 · · Score: 2

      Obviously that last one is supposed to be MINOR.

      Hopefully he didn't actually copy this from an MSDN article.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
    21. Re: How badly coded are Windows applications? by tqk · · Score: 2

      No, the problem wasn't that they referred to it as "Y2K", the problem was the mass media got hold of a 'possible' problem that 'might' affect 'some' computers and spun the issue to be so large as to throw civilization back to the dark ages ...

      Or, they were correct and it really was going to cause massive damage but we fixed it, or most of it that we could find. Years later, we were still finding remnants of it.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
  4. And Java fail again by tuxrulz · · Score: 2

    And looking at the code examples like 90% of the cases where in the Java sources.

    1. Re:And Java fail again by thegarbz · · Score: 4, Insightful

      Because only Java attracts bad programmers? Or is it simply observation bias? Certainly Java is not the only language which can give you the OS name.

    2. Re:And Java fail again by binarylarry · · Score: 2

      or C# which looks almost identical to java in most cases.

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:And Java fail again by rudy_wayne · · Score: 4, Insightful

      And looking at the code examples like 90% of the cases where in the Java sources.

      Exactly.

      The problem isn't Windows, the problem is incompetent programmers. Instead of calling the proper API to get the version number, morons are doing things like

      if (os.startsWith("Windows 9")

    4. Re:And Java fail again by Anonymous Coward · · Score: 5, Funny

      The problem isn't Windows, the problem is incompetent programmers. Instead of calling the proper API to get the version number, morons are doing things like

      if (os.startsWith("Windows 9")

      You're right. Failing to close your parens is a sign of an incompetent programmer.

    5. Re:And Java fail again by squiggleslash · · Score: 2

      Well yes, because they're using a search string that happens to be the way it would be done in Java.

      --
      You are not alone. This is not normal. None of this is normal.
    6. Re:And Java fail again by julesh · · Score: 2

      Because only Java attracts bad programmers?

      Because only Java was designed to discourage operating-system-version-dependent code and therefore intentionally lacks a way of checking the operating system version except through a string; most other languages provide an API that gives you major & minor version numbers in integers, which is much more convenient.

    7. Re:And Java fail again by chuckugly · · Score: 4, Funny

      C++

    8. Re: And Java fail again by Bigjeff5 · · Score: 2

      Can't be, since Java programs have plenty of access to harm your computer.

      The stated purpose of Java (actually, one of 5) was platform independence - write once, run everywhere code that you can run on Windows, Linux, Mac, or any other spinoff that has a JVM. Java makes the independent VMs for each OS, so that programmers don't have to rewrite their software to run on multiple OS's. Any sandboxing for security came later. Sandboxing wasn't a specific goal, though one of the goals was that the language be robust and secure, as any language should be. There is no mention of protecting the system from malicious code, and really even running in a VM Java has way too much access to the system to do that.

      What's scary is some of these issues are in the JDK libraries, or at least appear to be. First one on the list is an OpenJDK fork, but it looks like this exact same code shows up in earlier versions of OpenJDK. It's more reasonable that a JDK might need to look at the OS version than Joe Schmoe's Java app, but really even then it shouldn't need to. And even if you really, really, super duper need to know the OS version, what's wrong with something like "if os.name startswith("Windows") && os.version 5 then throw new RuntimeException"? That catches everything earlier than XP, which is obviously what they want, and is far less likely to run into problems with a later version of Windows. A lot of other Java devs did it that way (though some still did a search for "Windows 9" instead of just "Windows"), which you can find by searching for ("Windows 9").

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  5. srly ? by mZHg · · Score: 2

    18 years as a developer, I've never used such a shitty test..

  6. Re:This is Java code by Shados · · Score: 4, Informative

    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.

  7. Re:This is Java code by thegarbz · · Score: 5, Informative

    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.

  8. I call hogwash by Excelcia · · Score: 5, Informative

    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).

    1. Re:I call hogwash by shutdown+-p+now · · Score: 3, Insightful

      You're assuming that people always ask Windows what version it is by using the appropriate API (i.e. GetVersion[Ex]). In practice, they do all kinds of creative things, especially when they realize that GetVersion can lie to them when run in compatibility mode or (starting with Win8.1) based on what they declared in their manifest, but they think that they really, really must know the actual version number (they never actually do need to know, and it inevitably leads to breakage in some future version, but people keep trying). And then you have people doing things like system("ver"), or trying to look up system DLLs and get their version info, or read resource strings from them etc.

  9. Re:I share the opinion of a Wikipedia IP editor by smpoole7 · · Score: 4, Informative

    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.
  10. It's all those linux loving germans... by reg · · Score: 4, Funny

    Windows! Nein!

    Regards,
    -Jeremy

    1. Re:It's all those linux loving germans... by Overzeetop · · Score: 2

      Shame, too. NT was a fucking rock. Then they let the rifraf back in and it went to hell again.

      --
      Is it just my observation, or are there way too many stupid people in the world?
  11. Re:Doh! by John+Bokma · · Score: 4, Funny

    Of course not, they call it Microsuave Ventanas

  12. navigator.userAgent by RyoShin · · Score: 3, Informative

    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.

    1. Re:navigator.userAgent by Bigjeff5 · · Score: 2

      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.

      This is not any fault of Microsoft's. The first result is from a fork of OpenJDK 6, which was released just 3 years ago, when "Windows 7" was a thing, and other results indicate this bad code has been in OpenJDK since at least version 1.7, which would be around '06-'07. God only knows how much other software out there does it this poorly.

      These aren't legacy Microsoft apps that are having issues, these are modern, popular third party apps that have been coded very poorly, and Microsoft gets to deal with it. I imagine MS devs started installing third party apps to test compatibility, started seeing results like "Windows 9x is not supported", and just said "Oh shit!"

      Seriously, how is Microsoft supposed to detect and work around that behavior? It's software correctly calling MS API's and then doing utterly retarded things with them.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  13. This is the stupidest thing I've ever heard by NoNonAlphaCharsHere · · Score: 2

    So you're telling me that Microsoft decided/had to skip a version number because of existing Java code? Rly? Srsly?

  14. better name by goombah99 · · Score: 5, Insightful

    they should have just changed the whole name from "windows" to "Balmers gone, and its safe to us windows again, please come back".

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re: better name by Anonymous Coward · · Score: 5, Funny

      2008 is growing on me, but really after half a decade it's likely just Stockholm syndrome.

  15. Re:This is Java code by oobayly · · Score: 4, Insightful

    Shame there's not some method for inserting plain text into code that will explain what you're doing, but has no effect on the actual compiled application. Maybe we could call them comments or something.

    Or maybe there's some way of referencing a number, but with a name which describes what the number is so that it can be reused. It's be great if you could guarantee that the number couldn't be changed. Hmm, what could we call that?

  16. Why not create a new API version function? by JoeyRox · · Score: 2, Funny

    Old function: GetVersion() and GetVersionEx() [for Windows 8 and older]
    New function: GetVersionEx2() [for Windows 9 and newer]

    Seems a less intrusive solution that jumping a whole major Windows revision.

    1. Re:Why not create a new API version function? by NoNonAlphaCharsHere · · Score: 4, Funny

      Fuckin' PHP programmers! You guys need to die off. How about a GetReallyFor ReallyHonestThisTimeIMeanItVersionNumber()? Or are we going to be using a GetVersionEx47() at some point?

    2. Re:Why not create a new API version function? by Dahan · · Score: 2

      MS already basically did that... In Windows 8.1 and later, GetVersionEx() lies about the version number (it returns Windows NT 6.2, aka. Windows 8.0) unless the developer has specifically marked the EXE as compatible with Win8.1: Operating system version changes in Windows 8.1 and Windows Server 2012 R2.

      But this probably won't help with broken Java code though, since I'm sure Oracle will mark java.exe as compatible with Windows 9/10, and had MS not decided to jump to Win10, it would've returned "Windows 9" for os.name.

  17. Re:Doh! by jellomizer · · Score: 5, Funny

    I figured it had to do with Roman numerals.
    They skipped Windows 4 (IV) and they are skipping version 9 (IX)
    I figured there is a bug in the roman numeral check for the numbers the need to subtract before the value.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  18. massive hole in this claim by ihtoit · · Score: 4, Insightful

    Considering the industry move to 64-bit (how long ago now?), how easy is it to get a 16-bit DOS or a 32-bit Windows app to run in a 64-bit *NT* environment?

    Between 16 and 32 bit, you had (for 9x) the fact that the kernel was actually 16-bit but could address a 32-bit address space, for 32-bit NT systems you have WOWExec (a DOS VM with a shared memory space) but for running 16-bit apps on 64-bit platforms you have to go one step further than a compatibility subsystem (ie WOWExec) and run the app in a third party sandbox - or virtual machine, if you will - such as VirtualBox running a dedicated DOS or 9x session in a segregated memory space. Other esoteric limitations particularly in 64-bit Windows versions prompted Microsoft to issue an update which included zero-length root files (AUTOEXEC.BAT and CONFIG.SYS among others) in August 2010.

    Long story short, if you're running into problems with "Windows 9" it's nothing to do with pulling a version number, you're trying to make a 64-bit system do a 16-bit thing which it was clearly not meant to do and will fail spectacularly anyway.

    --
    Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
  19. Bullcrap by Dan+East · · Score: 2, Informative

    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.
    1. Re:Bullcrap by Your.Master · · Score: 5, Informative

      Type this into powershell:

      (Get-WmiObject Win32_OperatingSystem).Caption

      There's your marketing name.

      Took about 60 seconds of Googling to not only find this, but to find it in code that was making the same sort of error we're talking about (not literally the number 9). See this: http://ss64.com/ps/get-wmiobje... -- that's using the -match operator which is a regex comparison, and thus inferring whether it's a server build by a mismatch between the marketing name and the build name..

      Granted, I don't think powershell existed on Windows 95. I expect it's just wrapping an API that did exist. If it comes right down to it, the registry itself has the versioning information available to anybody who can use ctrl+f in regedit to find the key, and people do indeed do that.

      Trust me, MS doesn't give the slightest concern about any broken Java apps.

      No, I don't trust that statement in the slightest. Why would you think that? It's very contrary to Microsoft's behaviour in the past.

      I have no idea why they chose to name Windows "Windows 10", and I'm not convinced of this, but this is not so implausible as you seem to think.

    2. Re:Bullcrap by Dahan · · Score: 3, Interesting

      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.

      So what do you think that Java API would return on Windows 9? Don't you think Oracle would have it return the string "Windows 9"?

      Trust me, MS doesn't give the slightest concern about any broken Java apps.

      Perhaps you should read some of the stories on The Old New Thing about the hoops MS jumps through to maintain compatibility. Here's one (of many). In that one, we find that MS changed the internal implementation of critical sections in Vista, but found that some programs were looking directly at the internals instead of using the API. So in order to not break those programs, MS made sure the value in the internal struct people were peeking at had the value those programs were expecting. Keep looking back through the archives and you'll find dozens of examples of MS doing crazy stuff just to keep programs working in newer versions of the OS. And with many Java apps being big and enterprisey, you can be sure that MS is going to do whatever it can to keep them from breaking on Windows 9^H10.

    3. Re:Bullcrap by DigiShaman · · Score: 2

      So if not technical, I believe the reasons for jumping past 9 and to 10 is for marketing reasons (really psychological). The corporate sector is still predominately running Windows 7 on all newer machines. Being windows 8 is based of the mobile content consumption (not tuned for multi-monitor / multi-tasking workflow), many companies purchased through Dell to exercise their downgrade rights from a Windows 8 license to running Windows 7. Windows 8.1 still didn't introduce the Start Menu. In fear of having Windows 9 being viewed as yet-another release of the same old new shit, they choose Windows 10 in hopes of corporate america seeing it as the true successor to Windows 7.

      --
      Life is not for the lazy.
  20. You've got it backwards by Eevee · · Score: 2

    The problem isn't making sure code that worked on Windows 95 still works. It's code that wouldn't run in the DOS code tree, but will still run in the NT tree, and has code that prevents trying to run it on older systems...and, instead of checking for Windows_NT and proceeding, checked for Windows_9* and stopped.

    And, for the record, on a Windows 7 box, the OS environment variable is still "Windows_NT". Somebody out there must have a 95 (or 98) box still running that could check if it shows "Windows_95". ("echo %OS%", but if you've still got a box that old, you knew that.)

    1. Re:You've got it backwards by Bigjeff5 · · Score: 2

      OpenJDK does it exactly like this. Instead of looking for os.name "Windows" and os.version 5.0 and throwing an error for everything else, it actually explicitly looks for "Windows 9" or "Windows ME" and throws an error if it finds them.

      So OpenJDK (and plenty of other apps like it) doesn't think it can run on Windows 9 because OpenJDK developers suck at coding, and Microsoft has to deal with it.

      --
      Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  21. Re:Windows 9X by JustOK · · Score: 2, Funny

    not without patch KB41592653589793238462643383279502884197169399375105820974944592307816

    --
    rewriting history since 2109
  22. Re:Windows 9X by donaldm · · Score: 5, Interesting

    The whole article is Bull since MS Windows uses the NT kernel and their so called Windows 10 has an NT 6.4 kernel (see here ). For those that won't read the article the following is a list of NT versions from MS Windows Vista.

    NT6.0 - MS Windows Vista, Server 2008
    NT6.1 - MS Windows 7, Server 2008 R2, Home Server 2011
    NT6.2 - MS Windows 8
    NT6.3 - MS Windows 8.1
    NT6.4 - MS Windows 10

    Sure some of the apps my be different (slightly :)) but the basic kernel is only a minor increment. If the developers find difficulty in writing software that can't determine revision difference then I suggest they go back to school. Basically the whole reason to go to version 10 is IMHO marketing hype of which the Microsoft PR department excels (pun intended).

    --
    There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
  23. Re:Windows 9X by chuckugly · · Score: 2

    Actually the code I saw doing this was Java .....

    Win32 guys know which API to call to get version info properly, and it's not a string comparison.

  24. Re:I don't get it by shutdown+-p+now · · Score: 2

    Why wouldn't they just change whatever internal version number is being improperly queried to 10, have the correct API call return 9, and market it as 9?

    There is over a dozen different ways to get Windows version that I can think of. One of them is the official API, and others are hacks. but that doesn't stop people from using them, for the same reason why you see checks like b.toString().length==5 to check whether a Boolean value is true.

    The correct approach would be to issue an advisory for all these shitty programmers to update their applications or they may not work on Windows 9. Fix your shit, or GTFO, basically.

    One of the reasons why Windows remains popular in the enterprise is that shit doesn't just break like it would under your proposed model. Even if that means that there have to be lots of hacks in the OS itself to basically work around bugs in applications. As an engineer, you can rightfully cringe at it, but people pay for it, so...

  25. Re:How bad is the Microsoft API? by Spy+Handler · · Score: 2

    If your code is old enough to be checking for Windows 9x, chances are you're really asking "am I running under NT, or 9x?"

    A relatively recent program designed for XP or Vista could be checking for Windows 9x during install, like if (OS.name.StartsWith('Windows 9')) {print "Your computer is too old, please upgrade to XP"}

  26. Re:Windows 9X by _Shad0w_ · · Score: 2

    We also know not to rely on the kernel version number to work out what the given version of Windows we're running on is capable of - you ask it if has the capability.

    I was actually moderately surprised by the fact that people were using the product name to work out the version - it's not even that easy to get that string. I think there's a WMI object that contains it, but it was only added in Vista. I can only assume it's generally developers using some form of helper library that maps the version number to friendly names for them.

    --

    Yeah, I had a sig once; I got bored of it.

  27. Re: Windows 9X by kenh · · Score: 2

    These are Windows developers. Of course that (sic)have difficulty in writing software that can't figure out revision differences.

    Your double-negative and decision to break up one complete sentence into two incomplete sentences with typo really undercuts your argument...

    --
    Ken
  28. Re:Windows 9X by Bigjeff5 · · Score: 2

    It's how Java exposes the OS name to its users. If you look in that list, that os.name property is a native Java function. The Java library itself probably goes through all the BS required to get that, instead of the version number or some other more reliable method to see if your stuff will run.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  29. Win 9 got canned by MoarSauce123 · · Score: 2

    Maybe it is simply that the project that would have been Windows 9 got canned within Microsoft. I am sure work on Win 9 was underway by the time Win 8.0 was released just to have its plug pulled after the dismal and entirely preventable (if Microsoft would have listened to beta testers) sales figures and adoption rate of Win 8. As much speculation as any other explanation. In the end it does not matter, it's just a name.

  30. Re:Another vote of hogwash by Bigjeff5 · · Score: 4, Insightful

    If you'd actually look at the example provided, this is generally modern applications looking for Windows 9x versions in order to throw an error, and they did it in a time when "Windows 7" and "Windows 8" are actual things that really exist, not a nebulous time where MS was changing its naming format every couple releases.

    The very first example is a fork of OpenJDK 6, and it appears to be code carried over from the original, not new code. Another result was from OpenJDK 1.7, so this is more than likely poorly written code that has simply never been a problem before.

    People would probably blame Microsoft if all Java apps broke on Windows 9, even though it was Java's shitty programmers that did the deed, and really lots of programmers do stupid stuff like this and would blame MS for it. Unlike most bugs, MS doesn't really have any option but to change its name to fix this for software developers. It's not like a dev relying on the buggy behavior of an API that MS can work around for them. This is wide scale, pervasive shitty programming in third party programs that spans more than a decade, and Microsoft gets to deal with it.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller