Friday, 28 October 2016

Let's Organize a Posse

Only the brave and battle-hardened need apply. We will gear up with rocket launchers, bazookas and a tank. Then we'll go hunting for the evil lord Explorer and his sneering sidekicks Shim and Polyfill.

On the other hand, that may not be required. If we turn on our radios, tuned in to the frequency of the solar-powered transmitter left behind by friendly forces, we will hear the repeating signal, crackling through the static: "Explorer is dead. The battle won without a shot being fired."

And so it is: in the context of web development, Internet Explorer is no more. The last generally supported version of IE is 11, which happens to be the first IE version that can be considered "standards compliant". It is like any other browser, imperfect but bearable. For this discussion, it doesn't really count as IE, but can be seen as more of an Edge precursor. The previous version, IE 10, that still belongs to the old tradition of Explorer monstrosity we all love to hate, is now only supported on Windows OSs of niche interest: Windows Server 2012 and Windows Embedded 8 Standard.

In the West, the use of IE older than version 11 is mostly confined to those commercial or governmental departments that are glacially slow at adapting to change and take years before upgrading any software. Unless you're specifically targetting them, these types of website visitors are not in your audience.

My own visitor data backs me up. I don't track visitors to BeholdingEye.com, but the Blogger.com platform hosting my Blender blog provides useful analytics.

BlenderVisionPro pageview data

BlenderVisionPro pageview data

As you can see from the above screenshot of data for the past two years, all versions of IE account for only 5% of page views. 95% are other browsers. A growing proportion of that 5% will be migrating to IE 11 or Edge. Indeed, the data for last month shows only 1% for IE.

The vast majority of internet users - practically all of them - now use Webkit or Gecko based browsers (including the spoofing EdgeHTML). More importantly, with the exception of Safari and Opera in certain contexts, the browsers are aggressively updated by their vendors. It takes dedication on the user's part not to upgrade, particularly on mobile devices. Besides, no-one is tied to one browser; Firefox and Chrome are free and almost universally supported.

The implications are huge:

  • There is no longer any need for IE tests and custom code. You can work with features supported by all browsers since late 2013: Chrome 31, Firefox 26, Safari 7, Opera 18, IE 11. You can take it even further than that. Accounting for the fact that no-one but a few special cases will be using Firefox or Chrome older than two years, you can set the limit there, supporting Firefox 34 and Chrome 39 or newer. You might as well stop worrying about IE, Safari and Opera altogether. Users of those browsers, if their versions are older than a couple of years, will know they are out of date and will switch to Firefox or Chrome when doing anything more than looking for textual information.
  • If IE is dead, which it is, then so is jQuery. The advantage of jQuery was that it standardised code cross-browser, as well as providing animating and other interface features. On both counts, it is no longer needed. Some other libraries depend on jQuery, but there is now a plethora of modern, up-to-date tools that do not.
  • Shims and polyfills are no longer of general interest. Sure, if you're an API vendor intent on employing the latest and greatest of ECMAScript 6, polyfills are of use. But web developers should reject them in favour of either using those APIs or sticking to ES 5. Polyfills introduce opportunities for bugs to sneak in, and create needless layers of abstraction, adversely affecting performance. They had their value in the days of IE versions 6 to 10, but those days are happily behind us.

The battle is won, Explorer is dead, and the World Wide Web is better for it.