Coffeehouse Thread

13 posts

When you install SP1 for VS 2008....

Back to Forum: Coffeehouse
  • User profile image
    mikexkearney

    ...whats the 9 on the icon about?

  • User profile image
    vesuvius

    Visual Studio 2008 = Dev 9

    Visual Studio 2010 = Dev 10

    Visual Studio 2012 = Dev 11

  • User profile image
    Maddus Mattus

    You mean those subliminal messages?

    Don't mind them,..

  • User profile image
    felix9

    this one ? Visual Studio 9.0

    Generic Forum Image

  • User profile image
    cbae

  • User profile image
    wkempf

    , mikexkearney wrote

    ...whats the 9 on the icon about?

    It's about Microsoft being really, really, really horrible at both naming and versioning.

  • User profile image
    evildictait​or

    Yep. Let's not forget:

    NT 3.5 = kernel version 3.5

    NT 4 = kernel version 4

    Windows 2000= kernel version 5

    Windows XP = Kernel version 5.1 AND kernel version 5.2

    Windows Vista = Kernel version 6

    Windows 7 = Kernel version 6.1 (WTF OMG so retarded)

    Windows 8 = Kernel version 6.2

    I know they want to be all pure about their major numbers and whatever, but really they should just get over it. Windows7 is a major release different to Windows Vista, regardless of whether the NT people think it's a pretty minor change.

    There's also an app-compat thing going on as well: http://blogs.msdn.com/b/oldnewthing/archive/2004/02/13/72476.aspx but frankly in this case I don't think that's a good enough excuse.

  • User profile image
    mstefanik

    I wonder if Microsoft has some kind of internal metrics that show that every time they increase the major version number for Windows, a statistically significant percentage of software falls over because it performs its own (broken) compatibility testing. Limiting the number of major version changes and primarily using minor versions to distinguish between retail releases would be the path of least resistance for them and for third-party developers.

    Edit: I read Raymond's old blog post there, and it looks like it was definitely a problem for Windows 95 so it wouldn't surprise me that it continues to be an issue.

  • User profile image
    evildictait​or

    @mstefanik: It is a problem, but it's not as big a problem as you might think.

    If you right-click a shortcut or application, one of the things you'll notice is the "run this application as" with a drop-down selection of Windows XP/Vista/7 and so on. One of the many changes that this actually does under the hood is that it makes Windows lie to the app to give it the wrong version number.

    To automate this somewhat, Microsoft distributes (via Windows Update) a massive collection of application hashes and their corresponding app-compat requirements. When an app is run for the first time, this database is queried and the appropriate setting is chosen.

    Secondly, Microsoft has a big server farm in Redmond that chews through apps watching API calls and watching for app-compat regressions. This server farm feeds lots of automated additions to this big appcompat list.

    And finally, if an app isn't on the list, is linked to run on an old version of Windows that is not a console app exits within 5 seconds of starting, Microsoft pops up a dialog asking "Did this application run/install correctly". If you select "No", then it automatically sets the app-compat setting for the version of Windows that the app was linked against.

    So all of this adds up to a big "You'd think this would be a big appcompat problem, but it kinda isn't really".

  • User profile image
    AndyC

    , mstefanik wrote

    Edit: I read Raymond's old blog post there, and it looks like it was definitely a problem for Windows 95 so it wouldn't surprise me that it continues to be an issue.

    Doesn't one of the old version checking APIs still return a version of 3.95? Or did that disappear somewhere along the way?

    I think historically developers get tiered version checks wrong, because it's just too easy to get wrong. Sometimes I wonder if that's why Apple has taken to the OS X.n numbering scheme (although I suspect marketing has more to do with that one!)

  • User profile image
    evildictait​or

    , AndyC wrote

    developers get tiered version checks wrong, because it's just too easy to get wrong. 

    Which is why Microsoft invented VerifyVersionInfo:

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx

    Sadly it's more complicated and less well named than GetVersion and GetVersionEx, so it tends not to get used by the applications that are getting it wrong Sad

  • User profile image
    kettch

    @AndyC: @evildictaitor: That's assuming that developers even use an API to do a version check. I think it was during one of the pre-Vista Channel9 videos that somebody from the compatibility team said that a lot of people just open up the registry and do a search for "Windows XP". Then they hard code in the first entry that comes up and use its presence as a version check.

  • User profile image
    Sven Groot

    The decision to keep the major version number the same for Windows 7 and 8 was entirely driven by compatibility, and nothing else, as far as several people who worked on Windows have told me. I remember this being discussed at length in the Windows 7 beta newsgroups (you know, back when Windows actually had a beta program).

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.