< 3.1 Bad
3.1 Good
3.11 WfW Good
NT 3.5 Okay
95 Good
NT 4.0 Good
98 Good
Me Bad
2000 Good
XP Good
Vista Bad
7 Good
8 Bad
8.1 Okay
10 Good
11 Bad
There just really isn’t a pattern to it.
3.1 was a substantial improvement in that regard. It also brought major features like TTF fonts, the registry, a usable file manager, audio and video support, and networking in the Workgroups version.
These are also mixing two separate streams: Win3.x/9x/ME and NT+
That's arguable, I thought it was poor at the time.
When did it become good? WSL and DirectX 12 were real changes, but all in all, my impression is that the user has been frog boiled over the years, with 2K,XP and 7 becoming distant memories.
I'll give my prime example. I used to know Device Manager/Control Panel SO well. I could just get things done. Now I have to hunt around forever to do any sort of hardware related task. In their attempt to make it "so easy, even your grandma could use it" they've alienated power users. My grandma still has to call me to help her attach a printer... but now I have to say, "I dunno... let me watch a YouTube video and pray that it matches the sub-version that you're using".
A couple of weeks after release the first step after getting a new computer was changed from "downloading firefox" to "downgrade to windows xp". Unironically, many people did that.
I staying on a thinkpad R31 with win2k until I got a R61 (4gb ram) with vista on it several months after vista’s release. At that point it seemed like driver and other early teething had been worked out, so my experience was pretty positive.
When I eventually moved to win7 I didn’t notice any real difference.
if(version.StartsWith("Windows 9"))
{ /* 95 and 98 */
} else {
[1] https://www.reddit.com/r/technology/comments/2hwlrk/comment/...Microsoft had no reason to support blatantly stupid development practices that no one ever actually did. They were trying to avoid brand confusion with the consumer, because even people who know about versions will still do a mental double take at seeing "Windows 9", expecting another digit. The confusion might not last long, but it still detracts from the brand.
There is an example further down that thread:
https://www.reddit.com/r/technology/comments/2hwlrk/comment/...
https://issues.jenkins-ci.org/secure/attachment/18777/Platfo...
/** Performs computation and returns the result, or throws some exception. */
public HashSet<String> call() throws Exception {
final String arch = System.getProperty("os.arch");
String name = System.getProperty("os.name").toLowerCase();
String version = System.getProperty("os.version");
if (name.equals("solaris") || name.equals("SunOS")) {
name = "solaris";
} else if (name.startsWith("windows")) {
name = "windows";
if (name.startsWith("windows 9")) {
if (version.startsWith("4.0")) {
version = "95";
} else if (version.startsWith("4.9")) {
version = "me";
} else {
assert version.startsWith("4.1");
version = "98";
}
} else {
...The string check makes a lot of sense when you consider software written in languages like Java or Python rather than something that's coded directly against the OS APIs. In those cases you would get strings back with the OS name which of course is going to lead to many people just doing taking the simplest route of string matching.