Microsoft's Internet Explorer is still the Number One web browser - but only in terms of its market share. Over the years it has caused more problems for web programmers and web page designer than any other browser. Why do we put up with it?
Recent news that IE9 is gaining ground on Windows 7 was something that I couldn't understand. Users have a choice and perhaps they just don't see things as clearly as we do but... why is it we tolerate users selecting IE9?
Ever since Microsoft got involved in creating a browser, it has used it as a tool to further company policy and this has caused the developer community many, many problems.
In the early days, Microsoft had the huge advantage of building the browser into the operating system. This allowed it to basically ignore the fine detail of any standard it cared to modify to suit its own purpose. A browser that broadly renders web pages but does more with web pages that are tailored to its particular quirks is an edge worth having. Back in those days you regularly saw "best viewed in Internet Explorer" posted onto pages optimized for IE.
The point is that if you can take over a technology, appear to support a standard but actually spike that standard in such a way that it incorporates your own technologies, then you gain a huge advantage. It is almost as if Microsoft attempted to create Microsoft's HTML to stand against the rest of the world's HTML.
Early versions of IE were a mess but of course Microsoft didn't acknowledge this until quite recently when it was very happy to join in, and indeed sponsor, a campaign to get rid of IE 6. After all at this point what does it care about IE 6 and it adds to the warm glow of the new found commitment to standards based browsing.
Currently IE doesn't get a free ride into users' hands The playing field is supposed to be even in that Windows gives users a choice of default browser. However, many users still opt for IE simply because it is "the" Windows browser. The playing field isn't completely flat even now.
As IE has to compete, it does now try to look like a standards-supporting browser and HTML5 is its headline slogan. In tests IE9 is still the worse at supporting core HTML5 - but at least they are trying. However, while IE has made a point of looking as if it supported standards, the question remains "which standard?".
When the 2D SVG standard was introduced Microsoft preferred its own VML technology and ignored the 2D graphical system that was implemented in other browsers. As a result 2D vector-based web graphics were held back for ten years.
Now as a supporter of HTML5, IE9 has SVG and the old Microsoft technology has been ditched. No apology, no "sorry for wasting so much time" - just a switch to SVG. The justification that standards are good for us all. Of course at the same time as Microsoft is moving to belatedly support the original 2D graphics it is repeating history by refusing to support the latest 3D graphics standard - WebGL.
WebGL is currently supported to various degrees by Chrome, Firefox and Opera and it looks set to become not just a standard but a widely adopted on - with the exception of IE9 and 10 of course.
What could be the reason for this?
Microsoft says that it is something to do with security. Given the same sort of technology is used in Silverlight this seems doubtful. What seems more likely is that WebGL is based on OpenGL, which is of course an alternative to Microsoft's own DirectX.
Does it matter if IE9 and IE10 don't support 3D graphics - after all 3D graphics are just for games?
Arguably having fun with a browser is important and this might be one reason why Chrome's use goes up in the evenings and at the weekend when users are free to actively choose their browser. Until quite recently you could argue that all an IE user missed out on were some stunning 3D demos and some fun games. Many aspects of Google Maps don't render unless you have WebGL. Recently Google added 3D plotting to its search engine and this used WebGL. This means that for the first time the main Google site would be well within its rights to hang a "best viewed in a WebGL supporting browser", i.e. anything but IE.
Yes, from here on in any user of IE is going to discover that increasingly large areas of the web are just inaccessible. 3D isn't just for fun and rejecting it is reminiscent of IBM claiming that their new PC didn't need color graphics because that wasn't what business wanted.
There are other examples of IE's choice of which standards to support and how they are supported. For example, IE9 does support geolocation but only via Microsoft Location Services - with no option to change provider.
The fact that HTML5 is now considered to be a "living standard", i.e. one that is continuously evolving, makes it even easier for Microsoft to select the standards that it wants to implement and ignore the ones that it has problems with. It can easily claim that it is standards- compliant simply by being selective in what it regards as a standard.
The situation is that IE is still a tool of Microsoft policy and as such we really should avoid it like the plague.
So I propose one easy way to bring IE into line - test your apps on Chrome and Firefox and ignore IE. Make use of as much WebGL as your application could benefit from and ignore the fact that IE doesn't support it. Then if users complain that your app doesn't work under IE simply respond with advice to upgrade to Chrome or Firefox - after all both are free to download and IE is free to delete.