Almost always, nobody has any intention to "make it run buggy." It's about making it run well on platforms you care about (and officially support), and ignoring the others. Complicated software is usually fragile enough that it will have similar results.
If a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy.
This has nothing to do with 'making it run well on platforms you care about' but it is 'making it run bad on platforms you don't care about'.
It takes more code for the software to act in this way (this is what proves this is intentional and not accidental), and more support to boot.
It's been mentioned a bunch in this thread already, but they're doing feature support detection by user-agent string. It's not malicious, it's sloppy.
Here's a quote from the /r/linux thread [1], courtesy of /u/angellus:
> This is certainly a bug. It is not a targeted attacked against Linux users. Report it to Microsoft.
Microsoft is just doing really shitty feature detection using User Agent strings instead of, well actual feature detection. I was able to reproduce the same result by setting my User Agent to Firefox 52 on Windows 98. If I set it to a "more realistic" user agent like IE 7 on Windows XP, it would actually redirect me to a busted page to upgrade my browser instead of Word Online. It appears if Microsoft cannot figure out your User Agent (including your OS as part of it), it gives you a busted experience.
That commenter appears not to have heard of browser detection or UA sniffing, it has nothing to do with feature detection, they're a completely different method (and paradigm).
Nor should browser detection cause Firefox to follow a different switch in the code when on a different OS, not since about version 2 when I think there were bugs making that useful.
Really browser detection was something needed to handle MSIE way back in the day, or possibly other browsers before web fonts.
But this ain't browser detection, definitely not feature detection, it's OS detection - the system responds differently when only the OS in the UA string is altered.
> If a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy
That's not necessarily true. For example they might be doing polyfills that are slower than the native windows implementation.
I feel like I'm seeing a lot of this kind of thinking everywhere. The canonical example for me is lately is "he voted for Trump/Hillary therefore he must support groping/war/whatever".
I wish people would ease up on these kinds of deduction-based motivation attribution. It's my view that there enough self-professed unethical motivations for us to work against, without speculating. The speculation just muddies the waters.
And that is merely one of the most documented cases.
From former employees, I know that the culture at that time and into the late 90's was that Microsoft employees were a better class of human being than non-employees. Knowing that, it's not surprising to see the amount of Us vs Them behavior that showed up as anything from active antagonism to malicious neglect.
The kids don't remember that time frame, and wonder why the old farts malign Microsoft. It's because they went out of their way to make malice look like incompetence. That sort of malignancy deserves not to be forgotten.
It's as if your kids only know Uncle Phil as a Born-Again Christian but you still remember him as a raging alcoholic and how Aunt Sue always had a black eye, or as the guy who molested you when you were a kid. Are you just supposed to forget that ever happened? You accept his apology (except MICROSOFT NEVER EVEN APOLOGIZED), enjoy him while you can but you still have to be on guard in case he falls off the wagon.
You are talking about something Microsoft did in the early 1990s. It is very likely that most or even all of the people involved don't work for Microsoft any more. No company is ever going to be perfect, but I honestly believe that today's Microsoft is a much better corporate citizen than 1990s Microsoft was. (And, with the AARD code, while they shipped it turned on in the beta, it was disabled in the final release – which suggests to me that someone in charge at Microsoft had second thoughts about this even back then.)
If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive. If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.
> If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive.
Ok
> If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.
That's fine with me. But the degree to which MS has abused its monopoly position in the past, the degree to which they have been found guilty of bribery (in very recent times) in order to push MS products where Linux would have been a viable (and more sensible) alternative (for instance: http://www.intellinews.com/former-romanian-minister-admits-t... , there are plenty of other examples), the Windows 10 privacy violations, the crippling of Skype on Linux and so on make me believe that there are still at least some parts of MS that have not changed all that much.
It was something that Microsoft did in the early 1990's. And they did nearly identical things in the late 1990's. And they did more of them in the early 2000's.
Their fall from the heights since then has allowed me to ignore whatever malfeasance they committed in the late 2000's or early 2010's, but that doesn't mean that it didn't happen.
And for what it is worth, what they did to companies I worked for in the late 90's and early 2000's consisted of lying, cheating and stealing. It consisted of blatantly dishonest and illegal behavior. And it was completely institutionalized so that the default behavior was dishonest and malicious.
You can be wonderfully forgiving and credulous, but I personally find it very hard to do so.
You are within your rights to give the benefit of the doubt. Microsoft is also within their rights to get in front of this and show that "Microsoft Loves Linux" on the client side as well as the server side by addressing the issue instead of saying "well, just use Windows and it will work".
I'm guessing you don't really understand what he's saying. He's saying that by pretending to be Windows instead of Linux the webapplication runs better. There's nothing native about it.
The same exact website/piece of software runs better by saying "Hi I'm on windows". This obviously means foul play.
No, it really doesn't. It could just as likely mean they load a bunch of slow polyfills and workarounds when the browser is not part of a whitelist (assuming it won't have support for various APIs that it actually does support).
I struggle to consider that Microsoft is really that inept as to only be able to design it that well. I mean, do they do any testing at all? Across the browsers and platforms accessing their sites?
It seems most likely that they do testing on exactly the browsers and operating systems they say they support and no other platforms and do not want to expand the list because they'd have to provision more environments and do more testing.
What don't you buy? They test with a certain set of supported platforms. If a client isn't one of those (whitelisted) platforms, then they may send out a bunch of inefficient polyfills so they know XYZ functionality exists, even if it's slow.
Except that it works just fine if those 'unsupported' platforms are treated in the exact same way as the supported ones. To make it seem as if a whole pile of work was done in order to make unsupported platforms work less well but this is a good thing is something that I find very hard to reconcile. And if this were a company that did not have a history of exactly such tricks it might be more believable, MS - with me at least - does definitely not have the benefit of the doubt in cases like these.
No, a whole bunch of work was (hypothetically) _not_ done to verify if they were supported or not. I'm not suggesting that it's a good thing, I'm suggesting that laziness, sloppiness, or a simple oversight are just as plausible as malice.
It is _less_ effort to say "We support these specific platforms, and rather than doing actual feature detection, we'll just load a bunch of polyfills to make it work on anything else".
No it doesn't. It is just shoddy detection. It may rely on some windows native APIs that may or may not exist on all linux variants. The fact that it worked by changing the user agents in some case doesn't mean it would be wise for them to deploy it for everyone. The proper fix would obviously be to actual detection and not rely on the user agent string.
If you have different stuff available, you might choose to only cache/microoptimise the pages served to 98% of your userbase, which would lead to this type of effect with no malicious intent.
>Almost always, nobody has any intention to "make it run buggy."
Well, Microsoft has a long history of "making things buggy" everywhere else to create lock-ins. This instance may not be strictly related, but people's attitude has been shaped by years of anti-competitive stuff that MS has pulled.
Decades old. The GWX consent brouhaha is decades old? Edge (not IE) becoming the default browser all by itself is decades old? Riiiiiiiight. Decades of consistent data, methinks.
I really don't get why they can't put the browser they like as the defaultone into their OS. Not that I'm an MS apologetic (I don't really use anything MS since time immemorial) but it seems silly to me, frankly.
For a while I was changing my browser back and forth between firefox versions. Every single time windows 10 would detect that change and 'protect' me from it by opening the default programs control panel and setting the default browser to Edge.
It makes sense if they want the default browser to require user confirmation to change. But setting it to Edge in the meantime? That's just being rude and anti-customer.
I think it has a habit of changing itself to default even after the user sets something else as the default. Minor annoyance though compared to the overall pain of using a windows machine.
"Minor" depends on whom you ask: each time this happens, MS generates n angry support tickets...for me, not for themselves, of course: "the computer is broken again and I have lost all bookmarks and sign-in data, why did you break it again?!?" (The good news is, of course, that nothing is "lost" except for the default browser flag: resetting to FF fixes it...until next time)
As far as I am concerned, they can. But they are not bloody supposed to change it again, after I have changed it to something of my choosing. I am sick and tired of "yeah, so you have set your default browser to FF, but we know better than you what you want; so we have reset it again on yet another Patch Tuesday. Admit it, YOU WANT THE E!" (Consent, what consent?)
Does this only happen with certain configurations or something? I've been using Windows 10 since it came out and can't really remember this happening to me
As far as I'm aware this has to do with the fact that major updates are being delivered in a manner that's basically equivalent to a full reinstall, causing a lot of settings to get reset to defaults. This update method is particularly common for the insiders, but still happens from time to time on the general builds: anniversary update, creator's update and such.
While it's a solution, it's not a simple one. Developers don't have this luxury. Choosing an OS to support means supporting all the APIs and possible ecosystem that comes with it.
There are differences in supported features on different OS's with the same browser. They don't ship identical bits on each platform. The differences are pretty minor OS integration things usually, but there are differences.