Please don't remove support for Internet Explorer 11

Most displays seem to run on a Windows of some variant. I’ve never understood why - there are much more reliable options.

3 Likes

IE11 is a wonderful browser compared to IE8.
At least IE11 supports CSS grid (old spec)!

Who remembers the IE float/margin bug?

1 Like

Heh… then you’d be really impressed by an 8-inch floppy disk.
80kB of data on these monsters!

image

8 Likes

The only thing impressive is the size.

3 Likes

It amazes me that companies struggle to understand the serious security concern with using browsers that are not actively supported and receiving patches.

4 Likes

We recently had to urgently upgrade critical medical equipment because IT had blocked Win XP from accessing the internet. No-one knew the devices ran on XP somewhere deep down underneath the user interface until we found out frinday evening 4 PM. IT always upgrades something friday 4 PM and then they go home for the weekend :roll_eyes:

4 Likes

As a developer, I have to say that Internet Explorer 11 is not difficult to develop for as some people seem to think. Internet Explorer adopted all of the important standards after version 9. Everything that Internet Explorer 11 cannot do, has a very simple fallback, so there is no good reason not to support it.

Since its successor, Edge, is only available on Windows 10 and a lot of people are not using Windows 10 I think it is still a good idea to support Internet Explorer 11. When Microsoft makes Edge available on older versions of Windows it will be safe to drop support for Internet Explorer. Of course, they don’t want to do that because they want everybody move to Windows 10 since it gives them a lot more control over peoples’ personal data.

2 Likes

IE11 sure has a large number of ‘Partial’ and ‘No’ for something thats ‘not difficult’.

Polyfills and Transpiler help a lot, but there are inevitably lots of times where you have to if(IE) {} else {}. Is it hard to flood your app with if statements? Not really. Is it annoying as dick, yes. Does your IE version end up looking quite different than its counterpoints, you betcha.

5 Likes

I haven’t seen any announcement they’re dropping IE11. Where did you hear this?

If you’re referring to the forums, Discourse is not developed by the WK team, so they do not have control over it. Discourse dropped IE11 support this week because Microsoft is ending their support for it. Fact of the matter is, Windows 10 has been out for 5 years now. There’s been time to upgrade and devs can’t keep supporting old products forever.

For simple features, maybe, but I’ve found IE11 to be lacking in support for anything recent, because they aren’t adding the newer stuff into it. It may not be as bad as IE6 was, but there’s still noticeable problems with it.

I was going to link the same thing. There’s a pretty large discrepancy and it’s only growing.

5 Likes

I don’t agree with this at all. IE lacks support for many many many things and sometimes polyfills and transpiling code are not enough. If you are building a simple website or a small webapp then it’s probably fine. Go a bit deeper or try to use the new standards of development/styling and you will immediately see the cracks.

IE is a relic of the past and as the webstandard changes the difference between IE and other browsers will only grow larger.

Creating exceptions for browsers is a pain and oftentimes you are also unaware that feature X on browser X acts different than it does on browser Y leading to some fun times. With IE this happens all the time.

That said, Safari is almost just as bad lately :laughing:

5 Likes

Most of the “partial” or “no” support is for features that are unimportant.

Some technical explanations

You don’t need the const keyword to make constants, just use var and don’t change the variable’s content. You don’t need forEach(), just use an ordinary for or for…in loop. Arrow functions? Unless your program is severely having stack memory problems, they are no different than standard functions, using arrow functions would be a case of premature optimization. The class keyword works just the same as the previous approach of using the function keyword to make classes except that it is actually inferior because it cannot have private properties like the old function method used to have.

There’s also a concept called “graceful degradation,” your application does not have to work identically in Internet Explorer as in other browsers, it just has to perform the basic job without all the bells and whistles. Create the most basic system first, then use feature detection to add all the bells and whistles, if a feature is not supported then don’t add that additional touch, don’t even bother with a ployfill. This approach to software development is not just for supporting Internet Explorer, this is the most organized approach to build any software.

In the past five years I’ve had 10 times more problems trying to get things to work in Safari than in Internet Explorer. Let’s start a campaign to drop support for Safari.

4 Likes

Way ahead of you

2 Likes

I disagree completely. You’re suggesting maintaining two versions of the software, which is in no way easier or organized. It just increases the chances of introducing bugs for all your users (not just IE users) and increases maintenance costs.

Have you heard of hoisting? var is a nightmare compared to let (and const) which thankfully follows standard block-scoped variable scoping.

I believe arrow functions bind this differently from normal functions, in a way that avoids subtle bugs that people occasionally introduce when using traditional functions naively.

6 Likes

Have you changed your username?

You might be misunderstanding. It isn’t two versions of the software. It is a functioning piece of software with extra convenience features layered on. When any of the features are missing, the whole thing does not collapse, it just becomes a little less user-friendly. This guarantees your software never breaks, it just becomes a little less convenient to use.

For a simple example, if you want to build a table where you can sort the rows, start off with arrow buttons on each row to move it up or down. Then add some code to detect whether the drag-and-drop feature is available in the browser, if so, hide the arrows and enable drag-and-drop. There’s only one piece of software, not two.

1 Like

Thing is, it’s not about any of that stuff. That gets transpiled beautifully with babel and webpack anyways. The problem is with modern standards not being supported. To give a few examples of the top of my head that I’ve run into:

Styling:

  • Shaky flex support
  • No grid support
  • Atrocious font rendering
  • Bunch of css attributes being unsupported in general

Code:

  • File API not supported
  • Webassembly not supported
  • Audio file types not being supported
  • Browser database/storage not supported (some)

Regarding your examples, of course you can say that you don’t “need X or Y” but the new standards are there for a reason. Coding conventions and standards evolve.You’ll often find you can now write 10 lines of code with just 1 line of code if you embrace new standards. Aside from code being easier to read and write there’s also performance reasons why you might want X over a older variant.

While graceful degradation is nice, it can lead to a lot of confusion and even anger when customers come to the conclusion that they can’t use those features you’ve told them they could use. And you always gotta keep in mind that browser X doesn’t do this, browser Y doesn’t do that etc. Partial feature support always leads to problems, one way or another.

I do agree that it’s best to still support IE for now though, but that’s rather out of neccessity instead of it being “not difficult to develop for”

3 Likes

Internet Explorer 11 supports most if not all of these things. Maybe you’re thinking of older versions of IE.

Flex works 100%, I haven’t done enough work with grid to test it. I have never run into issues with font rendering. I’d have to see which CSS features are missing, but basically everything works for me.

All file management that interacts with the server should have a fallback system that works without Javascript. The definitely is not lacking support in any browser. MP3 files are supported by IE. localStorage and sessionStorage should be working fine in IE if I remember correctly.

After having had to work with IE 6, 7 and 8. I can pretty much confirm that IE 11 is nearly 1 to 1 with modern web standards.

1 Like

I’m not misunderstanding. It is effectively two versions of the software, even if not literally. Every conditional and branching path your code is asking for more bugs, and adding that risk for users using IE makes less and less sense every year.

Your specific examples are fine, if a bit contrived. The reality is that if you have to support IE there are some JavaScript features that you simply can’t use without doing transpiling, and some you can’t use even with that. This will often increase the cost of development and could decrease the quality of the product.

Excluding nearly all language features added in the last 5 years.

4 Likes

Let’s go over them again (and again, this is just what I can think of right now):

Flex works, but not always the way as expected.
Grid is not supported in the usual way (grid areas).

If you claim any of these are properly supported then you have not been using them on a daily basis.
Did you check the website linked above? It has a pretty extensive checklist of what is and is not supported in IE compared to other browsers.


Partial does not mean it’s got proper support either. Here’s the flexbox entry ^

File API has nothing to do with having backend code or not. It’s about the browser being able to handle files without having to use a server for mundane tasks. I also disagree with the mentality that files should touch your server before doing anything with them. I don’t want files to touch my server unless absolutely needed. Again, not properly supported.

Webassembly is not supported at all.

Wav files can not be played inside audio elements.

Some modern browser databases/storage are not supported.

Not sure how you can claim this when there’s a literal huge list of features not being supported. Let alone code standards.

Absolutely not. You’ve either not worked with new standards or think that IE 11 is the current standard.

3 Likes

I can confirm that this is false.

So many issues. Word wrapping, blur effects, and image scaling are three that come to mind from just the past few days.

True

3 Likes

y’all win 7 is the best OS change my mind. I still run the professional edition on my work desktop.

3 Likes