I think if you are developing for the modern web these days life is pretty good for you. Javascript has the proper standards, CSS has an easy to understand templating system now ( grid ), and sites have never been more engaging with considerable browser API and now Progressive Web Apps ( PWA ). We as web developers have never had this much power.
But ah yes, there is this one dark spot. Our mutually shared pain. Microsoft’s Internet Explorer.
Internet Explorer, or IE, is a pain for support. The web is on a fast track of innovation right now, with the upgrade cycle of CSS streamlined into modules, as well as new features coming down the pipe with Javascript and PWA support. However Microsoft caped development of IE 11, the most up to date version, in July of 2015. Meaning, outside of security updates IE11 would not be receiving any more feature updates. Seemingly Microsoft’s plan is to sunset the service pushing users to switch to its evergreen browser Edge, by making it the default browser on Windows 10.
But was this the right move?
Today IE in all its versions still makes up around 6 percent of global browser market share and is the second most used browser on the desktop after Google’s Chrome browser. That is a lot of people using a browser that is missing what we would consider being the modern web standard. I mean here’s a list of things you can’t do on IE 11:
1. Classes, Arrow functions, and more syntactic sugarThe web has forced Javascript to get so much more potent with web apps consisting of thousands of lines of Javascript. One of the better features of ECMAScript 6 or ES6 is that it has become so much easier for developers to understand what is happening in their code while writing less of it.
2. Async/AwaitAsync/Await is the savior of callback hell. Await allows developers to hold up the main thread in JS for an asynchronous function to resolve before continuing. I can’t tell you how many lines of code this has saved me.
3. PWAProgressive Web Apps are now the reality we live with today. Service workers are a dream to work with because they enable so many deep integrations to the browser allowing us to make compelling experiences on the web. Being a PWA and having offline support is something that Google will start weighing heavily in their SEO algorithms soon.
4. CSS GridAnother quality of life thing for developers. See the less code we have to write the less likely there are to be bugs, and we can make experiences everyone can enjoy. The grid makes the layout so simple for any developer and is one of the more powerful features of modern CSS.
5. CSS variablesCSS variables is a big one if you build page templates. I’ve been using variables in my CSS for years thanks to Sass. However native support for variables in CSS adds a whole other level of awesome and can, for some projects, remove a build step simplifying projects.
Seeing this divide in features reminds me of the IE 6 days. A time when the web was stagnant because of the absolute monopoly Microsoft had over the browser market. Supporting IE 6, later on, was hell because everything that was the standard did not work. Very little JS support and CSS features were limited to CSS2, but even that was not correctly implemented. The only thing that saved us from the tyranny of IE 6 was time, the time unwilling users took to update their browser. At least this time around Microsoft is a willing partner in making the transition to at least edge for all its users. However till that time, when we can call Internet Explorer 11 dead, IE 11 is the new IE 6.