...whats the 9 on the icon about?
Visual Studio 2008 = Dev 9
Visual Studio 2010 = Dev 10
Visual Studio 2012 = Dev 11
You mean those subliminal messages?
Don't mind them,..
this one ? Visual Studio 9.0
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.
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.
@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".
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!)
Which is why Microsoft invented VerifyVersionInfo:
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
@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.
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).