[I]t’s no secret that anyone who works with web browsers for a living hates Internet Explorer. Why? The reasons are many. Some people just despise anything Microsoft produces (see my blog post on OneNote for more on that).
But the main reason is that, historically speaking, while all the other major browsers opted to conform to industry standards for displaying web pages, Microsoft seemed to stubbornly stick to its own “special” way of doing things in IE. The result was web pages that looked perfect on Firefox, Opera and Safari, but looked like total doo-doo on IE with overlapping text and images, strange spacing, oddly placed line breaks, unsupported features, and so on. It was a web programmers nightmare.
Why, you ask, would Microsoft do this?
Um, because they could. From almost the beginning of web development time (c. 1995) browser wars have raged as the warring factions (Netscape, Microsoft initially) battled it out for market dominance. It was a brutal and bloody war which Microsoft eventually won but not before getting nearly broken up by the Department of Justice for antitrust violations.
But honestly, as interesting as all that was, web developers couldn’t care less about market share wars and legal battles. They just want to write beautiful, elegant code that worked.
Around 1997, in the midst of all of this, something changed. The World Wide Web was introduced to something called Cascading Style Sheets (CSS). CSS allowed web developers to separate the aesthetic look and feel of a website from the actual textual content and functionality. It gave way to a whole new job title: Web Designer, whose job was to make the web beautiful while “Content Developers” worked on the actual words and “messaging.” Web developers, meanwhile, still did all the heavy lifting on the backend to make it all work correctly and gladly handed off the aesthetic beautification to the artistes.
CSS is the designers primary tool for defining the stylistic elements of a website: Layout, positioning, spacing, alignment, size, color, font, etc. But for CSS to work its magic properly, all browsers need to implement it the same way according to the adopted, agreed-upon standards lest you have a sloppy mess from browser to browser. Interestingly, IE 3 was the first browser to implement CSS. Yes, Microsoft. Before anyone else. Yes.
Sounds pretty good, right? It gets better for Microsoft.
So… what happened?
What happened was that Microsoft became a victim of their own success:
(1) They rested on their laurels. They were so over-confident that the browser wars were over and they were the eternal victor that they eased up on the gas a bit. They stopped innovating and went five years — an eternity in the tech world — between releases of IE 6 (2001) and IE 7 (2006). And developers really hated IE 6. IE 6 was the root of all IE hatred.
(2) The antitrust lawsuit nearly broke up the company and put severe restrictions on Microsoft’s ability to build out IE in the ways they had been doing which made it much more difficult to fine-tune their product. Microsoft consistently flouted the emerging web standards for HTML and CSS because of the impact it would have on their IE code base. Adopting the emerging international standards would have necessitated rewriting significant parts of the IE browser.
To Microsoft’s way of thinking, they had market saturation, they were the big dogs — let them eat cake.
IE 6 lingered on for five long years and its unapologetic rogue reputation festered among developers. Websites like ihateinternetexplorer.com, iesucks.com and crashie.com began popping up all over the Internet. For sure, hell hath no fury like a programmer scorned.
Why Developers Hated IE 6 So Much
Developers are busy, smart people often with a touch of geeky narcissism thrown in. They pride themselves on solving tricky problems in clever ways and despise wasting time on redundant things. IE forced them to do exactly that.
Because of IE 6’s flimsy support for web standards and their total market dominance (95+% of the U.S. market in mid-2004), developers were forced to make nice with IE’s non-standard ways by writing the code for their web pages essentially twice: Once the “right way” for all the standards-compliant browsers like Firefox, and a second time the “IE way” to accommodate IE’s non-standard implementation of HTML/CSS.
Developers would spend inordinate amounts of time writing exception code in their HTML for IE which took the form of:
<!– [if (gt IE 5)&(lt IE 7)] >
Special instructions if IE version greater than 5 and less than 7. Non-IE browsers will ignore this.
Their HTML was littered with this sort of belt-and-suspenders code. It was time-consuming, error prone, and ugly. Coders hate ugly. And they hate wasting time to basically appease a bully.
And yet… the litmus test for the quality of all their work (and, by extension, their job security) was: Does it work in IE? And the developers are thinking: Yes, I spent twice as long as I should have but now it works in that POS IE browser. And so it went until around 2011.
I’m an optimist. One thing I’d never do is count Microsoft out. Love ’em or hate ‘me, they’re really good at what they do, they hire the best of the best talent, and they’re survivors.
IE is now on version 11, released in 2013, and they continue their upward march, adding support for more and more stable HTML/CSS features, and introducing novel ways of using a browser.
To their credit, they’ve taken their rebirth public with a whole series of self-deprecating videos and a website dedicated to reintroducing IE to a disillusioned public: BrowserYouLovedToHate.com You gotta respect the honesty.
IE still doesn’t implement all the features that Firefox and Chrome do, but that’s by design. Microsoft is purposely only implementing HTML features that it feels are ready for primetime (e.g., they’re not too experimental, don’t pose security risks). They have a lot of corporate desktops to consider, and corporate IT departments don’t like “experimental” features. They’re taking the cautious approach which is not totally unreasonable. But the best part is, it seems that Microsoft is innovating again, and that’s a good thing for everybody.
But developers have long memories for some things. Like a marriage gone bad, it may be awhile before Microsoft can erase the sins of their IE past and restore their reputation in developers’ minds. Then again, developers are ultimately about the technology today, not ten years ago. If Microsoft can prove that the new IE is technologically worthy, truly innovative and not just hype, developers will be glad to support them.
As for Me…
I can’t say I’m anywhere near ready to switch over from Firefox to IE. I’ve got too many Firefox tools and browser add-ins that I use everyday when developing and testing websites. But at least I’m prepared to not hate IE anymore.