By the time I was making my first website back in 1998 the idea that the browser was going to compete with, and quite possibly replace the operating system was already old. While I was pecking HTML into the Geocities code editor, brilliant people at Netscape and Microsoft could already see that with a proper scripting language it would be possible to create applications that would rival desktop applications. With all your apps running in the browser, Netscape’s Marc Andreessen famously pointed out that “Windows will just be a buggy set of device drivers”.
Microsoft’s response was well known: It used its monopoly in the operating systems world to push Internet Explorer into a position of market dominance. But there is another strategy that went with this that I feel is under-appreciated for its brilliance and seemingly unacknowledged in the recent kerfuffle about whether or not IE is a modern browser; Internet Explorer was never really intended to be a browser, let alone a modern one. It’s a Trojan horse.
That may seem like a strange thing to say, the term is largely used for computer viruses now, but I mean it in the original sense of the term; “a subversive person or device placed within the ranks of the enemy”. In this case the city being sacked and burned is not Troy, it is the promised land of desktop quality applications running in the browser.
In the same way that all word processors offer the ability to bold or underline text, Browsers are supposed to offer the authors of web pages a reasonably standard set of tools. There must be some way of announcing that a certain section of text is bold, or located at a certain place on the page. Any browser reading that web page should respect that announcement and act accordingly. More often than not IE does something else.
Since its earliest days IE has consistently behaved differently, forcing page authors to adopt whatever syntax IE requires in order to reach the 90%+ of the people on the internet.
Because of the differences IE introduced, it’s common to see authors checking to see if it is IE that is running their code and running the commands specific to that version. Its even common to see people creating a loading totally separate scripts based on which version of IE is being used to view the site. This has been necessary because not only is the syntax to preform a certain action going to be different between IE and every other browser, but it is also changes between versions of IE.
While Mozilla’s Paul Rouget is pointing out that in spite of the “Same markup” and non-sensical “Native HTML5” sloganeering, even the newest version of IE lacks support for many of the parts of the HTML5 standard. Given that HTML5 is very much aimed at enabling web apps to look and feel like desktop apps, I would expect nothing else. This line of reasoning also suggests that Mozilla or Chrome isn’t the biggest threat to Microsoft; jQuery is.
If that’s true you may ask, why then would Microsoft be contributing code to jQuery? Well I would say that this strategy has been so successful that it is now starting to hurt Microsoft. Many developers took Microsoft’s browser features at face value and used them… extensively. Now the world (especially the lucrative corporate world) is filled with web applications that can only run on a specific version of IE (often IE6) and Microsoft is stuck supporting them. Its a big enough problem that it prompted Google to create Chrome Frame so those stuck with IE6 could still use (Google’s) modern websites) When you have Microsoft themselves pleading with users to stop using IE6, Their support of, and contributions to, jQuery are likely because they see it as a method of moving people between versions of IE.
So while its easy to knock Internet Explorer, especially when I am trying to figure out how to get my pages working in IE, I try to remember to acknowledge it for what it is; a brilliant piece of business strategy.