Internet Explorer 9 and Code Nirvana

by jamie

We were so close. You could make out its silhouette on the horizon.

The ability to code once and be certain it would work everywhere is the holy grail of web development.  Ever since Internet Explorer 3 showed up on the desktops of Windows machines developers have been fighting a never-ending battle with web standards or the lack thereof.  There was a time when we coded for Netscape and didn't worry about anything else.  IE was just a blip and so you could ignore it but then Microsoft started insisting that it be installed on every computer with its opertating system.  We've been screwed ever since.

Eventually people started learning the intricacies of the internet and started realizing that Internet Explorer didn't render pages correctly, crashed (and took the computer down with it), and generally just sucked.  More and more people started moving to better browsers - first Opera which has always strove to be completely "standards compliant" then Mozilla Firefox (which has its roots in the Netscape browser that IE destroyed, not by being better but by the power of install base and the laziness of people) and finally Google Chrome and others.  Things were starting to look up until...

I would try to explain DOCTYPES but it's not very interesting.  Suffice to say that for years we toiled under a set of rules (and subsets, and proprietary subsets, etc.), standards if you will.  By the "end" of HTML 4.xx we'd gotten pretty close to being able to anticipate how things would render in certain browsers.  You could code a site once, and but for a few IE specific lines in your CSS (Cascading Stylesheet - maybe we'll discuss that in another post) you could be fairly sure it would work in most newer browsers and, as long as the user wasn't using IE6 (the closest thing the internet has ever had to a real fire breathing demon, just ask any developer) it would even work in Internet Explorer.

But now we have HTML5 and it's like starting over.  Starting over with brand spanking new power tools... that may or may not work... and most assuredly will not work consistently accross browsers or even browser versions.  No doubt HTML5 has made some beautiful things possible but with it has come headaches.  Eventually browsers will advance to the point where they can take advantage of all of the promises of HTML5 and about that time we'll get something new to play with.

About a year ago a friend and I were in a heated discussion about the adoption rate of HTML5 and he suggested that if all developers started developing exclusively for HTML5 then end users would be forced to upgrade to a browser capable of viewing the new stuff.  At the time I disagreed.  I'd lived through the IE6 debacle where companies started getting online just after IE6 came out.  They hired shoddy developers who were only capable of writing Microsoft Front Page code that only worked in IE6.  These companies were then stuck with website and especially intranet sites that they couldn't afford to replace and that necessitated the retention of IE6 long after its usefulness (not that it was ever particularly useful.)  We wrote code up until 2009 for a browser that came out in 2001.  You may not know this but 8 years might as well be forever on the internet.  The fact of the matter is that if you build websites for a living you're going to have to build them the way the client wants them.  You can try to explain to the client that the reason there is weird gray box around that image is because Internet Explorer doesn't render .png files correctly but he doesn't care.  He wants his site to look good on his computer... and he's not interested in upgrading his browser.

I've really enjoyed working on the new Alliance One website.  Developer sites are given a lot of slack.  You're expected to run out to the edge, explore the limits of the new tech.  Alliance One's new site hangs its toes over the edge.  Hopefully you can see a lot of the hard work that went into it on the surface but it's also pretty cool under the hood.  I'm pretty proud of it.

By the way, Internet Explorer 9, Microsofts newest browser is actually pretty good at rendering HTML5 but I'd still never suggest it to anyone - probably more out of spite than anything else.