Raise IE bar to 11. #860

Open
jdalton opened this Issue Nov 3, 2016 · 20 comments

Projects

None yet

4 participants

@jdalton
jdalton commented Nov 3, 2016 edited

Since IE 11 is the last version to continue to receive security updates, compatibility fixes, and technical support on Windows 7, 8.1, and 10 it may be a good time with v4 to raise the bar to IE 11 (previously IE 10).

@meeber
Contributor
meeber commented Nov 3, 2016

It looks like we have a bit of a mix-up.

Our recently agreed upon stance is that we'd support whatever browsers are still officially under support by their respective vendors. (source)

Microsoft's stance as of early this year is that they'll only support the latest version of IE that's available for each Windows version that's still supported. (source)

Windows Vista SP2 is under extended support until 2017-04-11 (source), and the latest version of IE that's available on it is IE9.

Windows Server 2012 (non-R2) is under normal support until 2018-01-09, and under extended support until 2023-01-10 (source), and the latest version of IE that's available on it is IE10.

Therefore, it seems that we either need to continue supporting IE9 through early next year, and IE10 for another 6 years, or we need to modify our stance in regard to IE.

If we continue supporting IE9 through early next year, then we have an immediate problem: IE9 isn't currently tested via Sauce (intentional? unintentional?), and I'm sure the changes made since 3.5.0 have broken support.

Pinging @keithamus @lucasfcosta @vieiralucas @shvaikalesh

@jdalton
jdalton commented Nov 3, 2016 edited

Hi, I work on the Edge team at Microsoft. The usage of Windows Vista SP2 is so low that while the technical nit is there our outward messaging and guidance is to treat IE9 as cut to avoid that weird support-IE9-but-skip-IE10 situation.

@meeber
Contributor
meeber commented Nov 3, 2016

@jdalton What is the team's guidance on IE10 due to Server 2012 non-R2?

@jdalton
jdalton commented Nov 3, 2016 edited

IE10 usage is so low that it's not really relevant anymore. IE10 is like IE7. Everyone skips it. In Lodash I technically support IE9 and IE10 only because I haven't hit version specific bugs. I'm not going out of my way to support them though.

@meeber
Contributor
meeber commented Nov 3, 2016

My initial reaction is that I'm in favor of dropping support for IE9/10, but we should post in the README our official stance on only supporting platforms that are supported by their vendors, and mention IE9/10 as exceptions.

I think the only practical risk of dropping IE10 early is some non-Internet-connected corporate lab network running Node.js tools that had the misfortune of having their security assessment done in the period between Server 2012 and Server 2012 R2, with their software baseline frozen at non-R2. This is so isolated that it's not worth the Chai's team's effort to support. They can use Chai 3.5.0.

Thoughts from the team?

@jdalton
jdalton commented Nov 3, 2016 edited

From an enterprise stance folks don't tend to stick or land on IE10, they upgrade to IE11. That's why I mentioned that folks skip it. The transition is generally IE9 straight to IE11.

@meeber
Contributor
meeber commented Nov 3, 2016

@jdalton Thank you for the insight and guidance!

@keithamus
Member

@jdalton do you have any hard numbers perhaps? I ask because I know -- personally -- I've had to support IE9+ for user facing websites as we've had significant numbers of IE9 users (I work in UK, I guess different to the US market?).

@lucasfcosta
Member

Thanks for the awesome data @jdalton!
I think we should check if we would need too much effort to support these older versions from now on, if it's not a big burden we can still do it, but if we hit major problems or code becomes too complex we can simply drop support, as @jdalton mentioned he does with lodash.
For now I'd like to keep supporting these versions, because I also had to support IE10 in Brazil due to the significant number of users.

@keithamus
Member

I'm gonna throw some more thoughts out. I should probably start by saying that it'd be great to stop supporting IE<11! We're fairly frequently hit by bugs in 9 and 10, it is definitely frustrating. But I'd like to handle browsers support a bit more delicately than node:

If a user is using Node.js 0.10 - they've made their bed, it's their decision, and it's also something they can fix (with some certain amount of effort).

Browsers, on the other hands, are a choice developers cannot make. Herein lies my conflict. Ultimately it doesn't really matter what is officially supported by vendors like Microsoft; if the users are still using IE6, 8, 9 or whatever, in a significant portion, then that means businesses have to support that browser regardless. If a big company has 1% of their 100MM user base on IE8 then they're not going to stop serving a million customers, as they develop code, they need to write tests, and we need to be there for them to do that... to a point I suppose.

To contradict my above point - maybe we could just take a stand and cutoff support, and if those companies still want to support older browsers, they can sponsor development for us to continue to support those versions.

@meeber
Contributor
meeber commented Nov 4, 2016

@keithamus Very good points. Agreed that more care needs to be taken when it comes to dropping support for a browser version compared to a Node version.

No need to make an immediate decision regarding IE10. I suspect we'll eventually want to make some kind of exception though; supporting it until 2023 feels a bit extreme :D

The issue with IE9 is more pressing. It's not being tested as part of our CI. The 4.0.0-canary release most certainly doesn't work in IE9, and to make it work has the potential to be daunting. (I haven't yet looked closely enough to gauge how daunting).

@jdalton
jdalton commented Nov 29, 2016

@meeber Have you had a chance to look into this more?

@meeber
Contributor
meeber commented Nov 29, 2016

@jdalton I haven't yet but thanks for the ping. Figuring out the situation with IE9 is critical before we release v4. I'll try to carve out some time this week to dig in.

@meeber
Contributor
meeber commented Nov 29, 2016

I didn't realize the should interface was already documented as not working in IE9 in previous versions of Chai. I assume that's why IE9 wasn't part of our sauce config.

The good news is that it doesn't look like Chai v4.0 added any significant problems in IE9. There's a couple of tests that fail if the developer console isn't open because of the use of console.warn for deprecated features, but other than that, expect and assert seem fine in IE9.

My current feeling is that we should stick to the plan of officially dropping IE9 support in April once Microsoft's extended support of Vista SP2 is dropped. As for IE10, I agree with @lucasfcosta and @keithamus that even if usage is statistically small, we should continue supporting it for now.

My opinion will likely change once IE10 starts to interfere with our ability to add new features. It seems excessive to support IE10 until the 2023-01-10 extended support expiration date.

@jdalton
jdalton commented Nov 29, 2016 edited

The inflated support dates for IE10 aren't needed.
The headline is, as mentioned, Microsoft ends support for all IE's except 11.
MS isn't standing in the way of dropping old IEs. It's more like, "drop them, please" 👏

@keithamus
Member

FWIW I think IE11 has given us more trouble than 10. For one it has terrible support for Maps & Sets, as you cannot iterate them in meaningful ways (only forEach). This caused me lots of pain in deep-eql. IE10 is kind of a nicer target as it has close to 100% ES5 support and close to 0% ES6 support.

@jdalton totally respect that MS isn't standing in the way of us dropping old IEs. Don't think that is our issue at all, I think the issue is our users are. As I said above:

Ultimately it doesn't really matter what is officially supported by vendors like Microsoft; if the users are still using IE6, 8, 9 or whatever, in a significant portion, then that means businesses have to support that browser regardless.

@jdalton
jdalton commented Nov 29, 2016 edited

Don't think that is our issue at all, I think the issue is our users are.

The market share of IE10 isn't really worth the support (it's less than IE8).
The remaining IE market share is made up of IE9 and IE11. So IE10 can be lumped in with the IE9 drop.

@keithamus
Member

I'd love to see some real stats, as I pointed out in my earlier comment

I ask because I know -- personally -- I've had to support IE9+ for user facing websites as we've had significant numbers of IE9 users (I work in UK, I guess different to the US market?).

@jdalton
jdalton commented Nov 29, 2016

Here's a good collection of stats that start to shape the picture:
h5bp/html5-boilerplate#1524 (comment)

@meeber
Contributor
meeber commented Nov 30, 2016 edited

Edit: Math is hard

It's a subjective decision on which browsers to support. To some development teams and companies, a 5% market share might be low enough to drop support for a browser. For others, maybe it's 2%. Or 1%. Or even 0.1%. Maybe the correct time to drop support isn't about the numbers but rather at some non-arbitrary point of time, like when the vendor drops support. Or maybe it's just when legacy support starts to cause actual annoyances to the development team.

I feel pretty good about the "when the vendor drops support" strategy for Node and other browsers. Legacy IE is the only one that feels a bit fuzzy to me. I think both arguments can be made: one that IE9 should be supported beyond end of life, and another that IE9/10 should be dropped immediately. I'm not sure what the right answer is for Chai and honestly I'm not feeling that energetic about solving this problem right now. It'll be easier to get excited over this issue once it becomes more pragmatic to drop support; at the moment, it feels like more of an ideological thing to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment