So, why did Microsoft skip version 9, jumping straight to Windows 10? On Reddit, someone who claims to be a Microsoft developer, points us into an interesting direction.
Microsoft dev here, the internal rumours are that early testing revealed just how many third party products that had code of the form
if(version.StartsWith("Windows 9")) { /* 95 and 98 */ } else {and that this was the pragmatic solution to avoid that.
I want this to be true. It’s perfect.
{
“sarcasm” : “You are completely right. They never check the version number at all.”
}
Also, what software that was written for Windows 95 or 98 could possibly still be around? I mean that’s almost 20 years ago. I can’t possibly imagine anything that’s still around from those days except some crufty old proprietary system that’s been held together for decades by bubblegum and spit… oh, wait, that describes Office.
Ok, binaries that old… probably few; but code that old being compiled using modern compilers, of course.
Software just get better with time
It’s not how checking version is supposed to be done, but a lot of developing happens by what ever method first comes to mind. There are likely thousands of far stupider version checking methods used in millions of Office document macros.
Millennium Edition.
Windows Nein – The German cut.
Because they couldn’t fit the whole 9 yards?
The UI is more than dressed to the 9’s?
Maybe hope they will have the “Perfect 10” (cue Bo Derek and Bolero).
https://issues.jenkins-ci.org/secure/attachment/18777/PlatformDetail…
Edited 2014-10-01 20:26 UTC
Either I totally don’t understand Java, or that code is broken anyway.
It redefines name = “windows” before checking to see if it starts with “windows 9″…
Admittedly, I’m no java dev, but that just looks broke.
No, you understand just fine. Its totally broken.
To be fair, afaiac about the furthest thing from anyone’s mind as far as Jenkins CLI goes is how well it works on Windows 95/98/ME. This is also not Jenkins CLI code, it is an obscure plugin, probably with 1 maintainer, that hasn’t been updated in 3 years. But its still a bug.
Interestingly, the “bug” essentially “fixes” the issue being discussed here as the string “windows 9” is never actually tested for in this code
Many users viewed Windows XP as good, Windows Vista as bad, Windows 7 as good, Windows 8 as bad. And guess what iteration MS decided to skip?
Windows 2000 was great, at least compared to Windows ME. XP was basically like 2k with a Fisher Price Interface on top, at least until service pack 2 came out. In fact, I still remember legions of users who swore they were going to switch to Linux because of XP’s product activation. (Although I’d imagine that only about 5 of them actually did so.)
Vista was an unmitigated disaster, although that’s mostly because it broke backwards compatibility in a lot of places. Windows 7 was an improved version of Vista, but still pretty lame if you went from XP straight to 7. I mean, fire up XP and then do the same with 7, and that does not seem like 8 years of evolution (2001 – 2009). In fact, the whole reason why Classic Shell was invented is because people hated the start menu in Windows 7, and then they bitched about having to install a Start menu replacement in Windows 8.
Windows 8 was actually better than 7 IMO, if you just ignored the Metro crap. It has some features on the desktop side that I miss when using 7 at work.
My point? This notion that only odd-numbered versions of Windows are good is a bunch of horseshit
I resisted XP until I realized that it had built-in RDP support (which you only got with Win2k if you used the server version).
Once I realized that, upgrading to XP was a no-brainer – so I could finally work remotely after connecting to my company’s VPN
You’re so right I had to double check that I did not post this myself.
I rather liked Windows ME. Don’t know why it got so much hate. There were some nice improvements in explorer. Like picture thumbnails.
I also liked it. People probably tried treating it like 98 with some “advanced” guides and such, which too often (due to changes in the OS) broke the system.
In my experience, Windows 2000 had a major flaw that caused me to switch to XP: improperly shutting down the machine (intentionally or otherwise), was very likely to corrupt Windows. I recall having to reinstall Windows 2000 time after time after time.
If I had to do a hard reset for any reason I knew I needed to get out that install disc to repair windows as even the Repair Mode Blue Screened. This happened on multiple machines, and completely stopped once I upgraded to XP.
Other than that, yeah it was awesome.
I can’t speak to the veracity of this, but I am not sure I buy it. However I will share the anecdote that OS/2 internally stayed at version 2.X internally because IIRC anything higher caused problems with DB/2.
I can only assume it was cheaper to deal with the issue in OS/2 than in DB/2…
That reminds me of Intel CPUs; where they’ve used “family = 6” for everything from Pentium II (1997) to Haswell (2014); possibly because Intel’s own compiler generates code that does “if(family == 6) // Use SSE, etc”.
– Brendan
I believe the Intel Pentium 4 series used a Family of 15 in stead of 6
Except, it might be.
https://searchcode.com/?q=if%28version%2Cstartswith%28~*…
The only logical way to approach this kind of backwards compatibility issue is to change what os.name returns (“Windows Nine” or whatever), not the entire name of the OS. Incredibly unlikely that they would skip a version just for some backwards compatibility issues.
No, the only logical way would logically be to include a minimal copy of Windows 98 with all Windows 9 installations, and if the application thinks it’s running in a Win 9x environment, automatically spin up a Win98 virtual machine in the background and load the application inside the VM, then pipe in the application’s window over VNC (automatically cropping the VNC display to the specific application window size) and render it inside a tile in the new Windows 9 start menu.
Microsoft could establish a generous limit of one (1) for the number of different Win9x apps that can be run concurrently, and if the user needs more than one concurrent Win 9x app, offer a monthly subscription to the Windows 9 Compatibility Retention Application Platform edition, which would enable a limit of 4 concurrent apps.
That would be my simple, elegant solution to this predicament.
Yours truly,
Rube Goldberg
Edited 2014-10-02 03:31 UTC
Don’t run Win98 VM on demand, run it all the time. This will speed things up considerably.
And what if os.name isn’t a Windows API call, but rather a made up method in some framework? If you look at the Java example, that’s exactly what’s at going on here.
Hahahaha! That is golden! Thanks for making my day, Thom!
If you click “ASP” on the side bar, I found a few Instr() checks for “windows 9” too… so it’s not just the java guys who are morons
Uhhhh…I thought they all went by kernel version? Win9x was 4, 2K was 5 IIRC, XP was 5.1, Vista 6, Win 7 was 6.1 and so on.
I really find it hard to believe somebody would hard code success or failure on something as arbitrary as OS names, after all wouldn’t that mean Windows ME would still be supported since it doesn’t start with 9?
You may find it hard to believe, but this is nothing compared to the more arcane compatibility shims in Windows.
Agreed. “Hard to believe” is something I find myself repeating frequently as I read other people’s code (and sometimes my own old code, too). People frequently find something that “works”, throw it in a function, and keep using it until it doesn’t work.
Most of us programming types aren’t given the time luxury to go back to revisit all of our working code every time we get an upgraded version of our programming language or find a better way to do something. If it isn’t broke don’t fix it, so to speak.
if (os.startsWith(“Windows 9”) || os.equals(“Windows Me”))
Line 41 https://searchcode.com/codesearch/view/60696206/#l-41
No, Windows 9x is not an NT kernel at all and therefore has no NT kernel version number. NT v4 is not the same as 9x at all.
So you cannot check for 9x or Me using a kernel version that doesn’t exist. So you either check the name to have one product, or make two separate products targeting each version of the kernels (NT and non-NT). It’s just bad luck that so many devs checked for “Windows 9” as a shortcut to two checks for 95 and 98.
Win 9x and NT were different lines of kernel.
I still doubt it. Windows ME internally called itself “98” so MS has shown that they are clearly capable of separating marketing name vs whatever Java uses to get “os.name”, and they did it once already when those compatibility problems were the norm (win9x days).
Besides these days they have that gigantic database of “compatibility shims” which, among other things, are used to lie about the Windows version to hundreds of executables…
This wouldn’t work, as shims patch the import table and redirect API calls.
In the case of the java code, it checks the OS kernel version and minor version and creates an OS Name from that.
You’d need to patch call site code, which isn’t what the app compat shims do.
Have a look:
http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/native/…
Or you just lie about the version number, which is what I suggested
You have never checked the numbers on the right, right?
The first five are:
Python 2047
Java 769
C++ 545
C# 448
Javascript 282
I still like to think MS has adopted base9 as a new standard in their software products.
But to be fair though, if you are using Java, Python, Ruby, etc. – your “goto call” for version info is not getVersionEx(), but instead usually some runtime service property like platform.os.name/platform.os.version or the like (which often omit minor version numbers).
Also, you may be targeting Linux/Unix first and are not schooled in the history of windows versioning (i.e. Windows 95/98/ME/NT all share the same major version number). So many developers end up resorting to silliness like this out of ignorance.
Not making an excuse, just saying it isn’t a perfect world…
They wanted to distance themselves from Windows 8! Smart move in my book. Windows 10 looks like a Windows OS I’d actually use and that’s saying a lot considering I’ve been running Linux on all my machines since 2003.
Which is kinda funny, because it looks like Windows 8 with an overly complicated start menu that no one asked for.
Been running 8.1 for a few months now, and it’s a pretty good OS, once you eliminate the touch-screen cruft.
Agreed! In fact, whenever I setup a new computer for someone, I have found that Windows 8.1 is perfectly usable with the installation of four simple tools (all free except for one which is a whopping $5.00)
– Classicshell – restores the Windows 7 start menu, and allows directly logging into the desktop (free)
-Aero Glass for Win8.1 – Restores Aero glass effects (free)
-Desktop Gadgets – Restores Windows gadgets
-Stardock Modern Mix – Forces Metro apps into bordered windows on the desktop where they can be easily managed, resized or side-by-side ($5.00)
The result is a desktop that is nearly indistinguishable from Windows 7 and one doesn’t need to ever revisit the Metro cruft.
Edited 2014-10-03 22:44 UTC
Yeah, I’ve not heard anyone complain about a lack of start menu in Windows 8…
Edited 2014-10-05 03:25 UTC
I dunno, I feel that Windows 98 was pretty great. Of course it was crashy, but much less so than ’95 and it had a lot of improvements over the previous one. It certainly was a pretty useable OS at the time. Then again, I didn’t have access to pretty much anything other than OS/2 Warp, DOS, CP/M and Win’95/’98 at the time, so maybe I would have a different opinion if I had been able to use something else.
are you sure you remember that way Windows 98 and not Windows 98 SE?
The same can be said for XP. XP was a total disaster before the first Service Pack was released. Now everybody remembers it as being a great operating system, which totally ignores the first 3-4 years it was out.
So right.
In the mid 90’s, Microsoft basically set the trend for software that won’t work out of the box and mandatory post-install updates.
That’s how/why the Internet really too off.
ftp://ftp.microsoft.com/Softlib/MSLFILES 🙂
I had totally forgotten there was a SE of it. I’m not sure if I ever owned the original, non-SE version at all. Hm, my bad then.
I used OS/2 Warp for a while, and it was delightful – it had a Windows icon, and added an OS/2 icon to Windows, so that I could flip between the two as easily as I flip between ChromeOS and Ubuntu / Crouton today. Brilliance.
File links confused me at first – more like Linux hard links, such that renaming the link actually renamed the target file, too.
Unfortunately, it also randomly crashed – and unlike every other OS I’ve used, when you rebooted, it kept the crashed processes going. That was both brilliant and very scary.
A quite knowledgeable IBM tech spent over an hour on the phone with me (a mere consumer) trying various fixes, and when none worked on my (non-IBM) hardware tried to refund my money. I wouldn’t accept it, of course- they earned the money with that one knowledgeable call. Didn’t even have to say “shiboleet”!
Edited 2014-10-02 14:21 UTC
Windows 95 OSR2 was pretty OK actually.
I remember it as being snappier than Win98SE.
But, which one?
Win95a, Win95b, Win95c, or Win95d? Those were all listed as “Win95 OSR2”, and they each had different features added. You really needed Win95b or newer, as that’s where USB was added; although it was Win95c or newer that really improved stability.
Urr, bad memories of USB on any Windows before 2000.
I tried a USB floppy drive on Windows ME once. One of those with the transparent blue cases so it would look good with your Bondi Blue iMac.
It read the floppy fine but the entire thing crashed when I ejected the floppy disc. To be honest I may not have properly ejected it from the OS.
As I recall the only thing that worked properly was keyboards and maybe mice.
I also have horribly memories of USB and NT 4. I can’t clearly remember it but I think you had to go into a control panel to rescan if you plugged or unplugged anything. No hotplug!
NT4 didn’t support USB…
A quick web search reveals some third-party USB drivers for NT 4 which may be what I’m remembering. It’s been a while.
Would explain their awkward nature…
Will have to dig out that old CD and check this out.
Bah, I was hoping this was a link to OldNewThing :-(.
I’m not sure what to think. On the one hand, it seems plausible…. on the other hand though I just feel like there has to be more to it.
It might’ve been a combination of:
– Distance from negative Win8 connotations (If Win8 had a non-numeric name like Windows Vista — they’d probably have stuck with Win90
– Marketing reasons to make it seem like a massive update (which it may very well be, remains to be seen)
– Compatibility issues with some apps
So it might’ve just started making more and more sense as they went on in the development process. It still just kind of mindfucks me though that they went with Windows 10.
Here I was thinking it was a marketing decision. Windows unable to compete as a ‘product’ and competing only the basis of having a superior version number.
This exactly the kind of thing hairbrained developers do. Maybe you just haven’t seen enough bad code or read thedailywtf because then you’d know that people do far worse things than this.
Agreed; reason why Opera identifies itself as 9.80 in user agent even in 12+, to avoid code that was detecting only the first number as “Opera 1″…
https://i.imgur.com/axJmn.gif
Surely they could have used one of those other number 9s in the other unicode blocks. ⑨
Couldn’t be because OSX 10.10 is coming.
That’s close to my conspiracy theory, which is that the MS guys looked at the Mac and said “Oh no, their OS is version 10”, we can’t be on 9.
They did it for similar reasons with Word, going from 2 to 6.
On a serious note, why does this company have so many issues with names?
2000 > XP > Vista > 7
1 > 360 > One
They really make their lifes difficult.
Office 4.2 > 97 > XP > 2000 was a nice ride too.
That’s the first thing I thought too — so much of Microsoft’s naming is to combat Apple’s rocksolid consumer marketing, and they usually fail horribly when trying to be like Apple. (Bob, Zune, XP’s interface, Metro, Surface, etc.)
Apple has been on 10 (OSX) for 10+ years now, and i’m not sure if they will ever move beyond it. I think people see the X as part of UNIX, which makes it more stable and secure than Windows, and Apple likes that branding position.
Main reason to get an Apple (after the iOS ecosystem) is to get stability and reliability from your hardware & software, even if you need to run Windows or other OS’s. OSX is a big part of that since even OS geeks can’t attack Apple’s core OS since it’s core credentials are so strong.
It would be funny if Apple secretly developed their OS11 marketing (XI?) but gave no clues they intended to leave 10, then right after Windows10 is pushed they put out X-11 or whatever.
I would hate if Apple stooped to a vaporware press conference to pre-empt competitors, but it would be funny if as soon as Windows10 is pushed out and is on every NFL commercial all year Apple dropped the 10 like it was from 2010.
I love how people rewrite history.
Yup, 2000 was a godsend, damn good, rock solid and light os, other than the fishy new apis allowing to write custom network packets and create mighty botnets.
Windows 95 and 98 used to have random stability (explorer.exe crashes, people ?) and ME was meh. Note that it was not only MS fault, has it was an obscure era for drivers…
XP was 2000 with bells and whisles which initially slowed down every machine, and bug ridden until SP1 (some even say SP2). It was barely good initially, then became the gold standard when everyone realized it was more stable than the 9x. It was accompanied by the new MS approved drivers thingy, I think, quite a nice feature on the paper.
Vista was quite good on well dimensioned machines, from the start. What got it bad reputation was crappy OEM machines and is its initial bad software compatibility which was fixed later.
I got no real experience on 8, as I have only used it for 4 or 5 hours. It was annoying, but manageable and a “with a nothing here, move along” feel to it.
So, if look from 2000 on, I must say that the perceived quality the MS desktop OS has not changed significantly. Sure, security improved drastically but other than that, there was no real revolution. There was also the new user space model for drivers, but with good drivers, there is no end user issue there.
I know there has been many changes under the hood, but for a regular user, it’s pretty much the same with a shinier/uglier UI.
Now, if we talk about the MS server OSes there was a massive change.
They are paying a lot of money to get Surfaces and Windows Phone items all over american TV and sports this year. It’s kind of distracting because it’s so unusual to see them out in the wild, it’s a distraction when I’m watching TV.
The Apple product places always seem to be quick and about the case being ID’d as an Apple. They don’t really rely on the Apple product or make a plot point about it, it’s just there. The interfaces, if shown at all, are usually faked.
But on football and a couple of shows I watch, this season, all of a sudden there are Windows8 screens, Surfaces, and Windows Phone devices everywhere. They are often times part of the plot, or the main characters have them in their hands for important scenes. It’s very forced and strange.
I can feel MS people telling writers “but they have to use this hybrid tablet/laptop thing in the scene” and show producers being forced to show the characters playing with their WinPhones, doing twitter and selfies and other basic things we’ve all been doing for years now. Like it’s new or interesting to see people play with their devices on TV. MS is 4 years behind the mainstream consumer, as usual.
Steve Ballmer buys the LA Clippers, who have been using various iPads for playbooks and organizational stuff, and makes the entire staff replace their iPad’s with Surfaces. I hate crap like that. MS also pays the NFL millions of dollars to make it look like everyone is using Surfaces on the sideline of NFL games, but I’m sure the last thing those guys want to deal with at that point is a clumsy half-ass tablet running Windows. Blech.
And btw – I’ve read some articles about Apple’s product placement policies, and they are usually contacted by producers for hardware, not the other way around. Certain big budget movies ever so often do get Apple’s cooperation and maybe try to push a new product in the film, but rarely.
Edited 2014-10-02 13:28 UTC
Kind of like Apple’s product placement in films in the late 90s.
What are you talking about? The “product placement drinking game” is just about the only reason to watch “Under the Dome” (brought to you by Toyota Prius and Microsoft Surface ™).
Yeah, it’s not as if there was, say, a major film (Independence Day) where a Powerbook (Independence Day) was used to (Independence Day) save the (Independence Day) world from an alien invasion…
i completely agree, that’s my point, it’s a page out of apple’s book, a full 15 years later. it’s ancient feeling.
next surface users will be dancing in white silhouettes.
haha too funny, you nailed it, i have totally been watching under the dome, and yeah it’s prius and windows every other scene this season. nfl too.
marketing is always a distraction, that’s it’s point for existence. the powerbook running OS9 did save the world a few too many times without requiring a command-shift-power reboot 4 times a day, which was closer to reality.
ballmerknowsbest and me agreeing? awesome. i don’t hate the clippers either even though he way overpaid for that team.
I always get the feeling that, during the writing of the script for each episode, there’s a battle between the Microsoft and Toyota reps over which company’s product will save the day this week. Of course, this is Under The Dome we’re talking about, which (near as I can tell) has turned into a social experiment to see if “so bad it’s good” can work in television – so the invasive product placement is the least of the show’s problems.
Yeah, that practically broke my suspension of disbelief in Independence Day – every time I watch it, I keep expecting Jeff Goldblum to be unable to upload the planet-saving computer virus without rebooting with extensions disabled, or because “an error of an unknown type has occurred,” or just get the good ‘ol “error quack”.
While it is probably not the reason, or at least not the main reason, it is not hard to believe that code like that exists.
There are tons of Windows “application developers” which one would call code monkies if that weren’t an insult to monkies
There is a reason why Windows is the only 64Bit platform where a long in C/C++ is not 64bits wide.
WTF?..
http://imagebin.org/320986
Why is not allowed to post to the “Intel buckles to anti-feminist campaign” article?
Chromium gives me a malware warning for your link, FYI.
I’m guessing so Thom can post about the feminism related stuff without having to read posts against it? It bugs me, since that means no sides can be heard, and this site’s heart and soul is its community of commenters. And we’ll be modded off topic for talking about it here…but where else can we discuss it?
It’s quite ironic that a post dealing with a movement that claims of media one-sidedness and stifling of expression has had its comments locked down
Well now I’m disappointed. I thought the zero comments was the regulars silently boycotting this crap. I was going along and not posting because even though this site routinely goes way off topic, this particular topic is just begging for mindless empty political point scoring. I’d rather not discuss it here.
To avoid “nine lives” jokes.
An entire thread of comments is gone.
http://www.osnews.com/thread?597303
After all there’s a reason that REAL versions of Opera (aka 12.17/lower, as opposed to the pathetically useless ChrOpera) report themselves as 9.8x in the UA string — thanks to dipshit halfwit web developers only checking one digit resulting in their dumbass “browser sniffing” were reporting the initial test releases of Opera 10 as Opera 1.
Browser sniffing, or even OS sniffing is really a great example of developer ineptitude. It’s most always a shortcut to make up for simply not obeying the instructions put forth by the OS maker — which is why in terms of things like Windows software all those “undocumented Windows” books and the developers who used them; AND the wild claims by non-programmers that dragged MS into court in the EU over the existence of said calls as being a “unfair advantage” for MS is a bunch of bull.
“unstable API, internal use only” exists for a reason — but so many people writing software can’t be bothered to pull their head out of their ass to do it.
Just as many web developers can’t be bothered to write code that works everywhere in the first damned place and not waste time trying to do things that don’t work everyplace, and instead load up on JavaScript browser sniffing, idiotic “let’s wrap the HTML tag in a half dozen IE conditional comments” crap, shim’s, polyfills, and general “I can haz intarnets” development.
Hardly a shock though when most web dev’s — and I guess normal developers for that matter — can’t extract their cranium from 1997’s rectum. See HTML 5, aka “the new transitional” setting development practices back a decade and a half.
That desktop OS developers do similarly dumbass things? Hardly a surprise.
Edited 2014-10-06 22:08 UTC