In case you haven’t heard, today, the first Patch Tuesday of 2016, marks the end of support for Internet Explorer 8, 9 and 10 in favor of Internet Explorer 11 and, of course, Microsoft Edge.
I remember the first time I went online. It was the year 1996. I was 4 years old. The then-current version of Windows was Windows 95. One of the only remaining memories I have of going online back then was spying the ever so curious ship’s wheel icon on the desktop of the family computer1, double-clicking it, and discovering that it was in fact another way to access the World Wide Web.
My initial reaction: complete and utter bewilderment. I knew what websites were, I knew that websites consisted of pages and pages of information, but it blew my mind to learn that there were other programs that could be used to access said websites besides that blue ‘e’ with a ring around it. And one of the first things I noticed, aside from the differences in the UI, were the differences in how pages looked in each program.
Unfortunately, as a 90s kid, I was completely ignorant of such things as the browser wars, HTML, CSS, or any of that jargon. I wasn’t even that much of a computer person myself. I was just your average preschool boy. Nevertheless, watching my dad work on the computer was one of my favorite things to do at home, and one of the things he worked on was — you guessed it — a personal site of his own (which he maintains to this day!), and although I can’t remember for sure, I’d bet his was one of the sites I poked about on back then.
By the age of 8, I was well-versed with the Internet, having heard that blasted dial-up noise a thousand times. I discovered Neopets, and their HTML Guide for helping Neopians design home pages for their pets. And that’s how I got started with HTML, as well as my first experience testing my own pages in differing implementations. A skill that would remain one of the most important for a web designer to have over a decade later.
Although the Neopets HTML Guide included a very primitive primer to CSS, I didn’t learn CSS seriously until the age of 14 (!) when designing NOVALISTIC 2.0 in the year 2006 (and can you believe that was ten years ago?!). IE was the dominant browser in terms of raw market share simply by proxy of Windows being the dominant OS, and IE6 was still the latest version, five years after its release.
In the meantime, all manner of bugs and quirks of every mainstream browser at the time had been documented in such classic resources as positioniseverything.net, and I had my fair share of frustrations with each browser, having just switched to Firefox 1.5 at the time. IE6 was a huge leap forward in its time, but it did not age well. At all.
Yes, IE6 was CSS1-compliant, but CSS2 became a W3C Recommendation in 1998, three years before its release, and CSS2.1 was in development for its entire lifetime. Effectively, the web was stuck on CSS1 for those five years (which is just way too long for any browser, let’s be clear on this). IE7 would not arrive with Windows Vista (and along with it, Firefox 2) until later that year, about time, and while it was a substantial improvement, adding support for basic CSS2 features like attribute selectors and the child combinator
>, it was still by no means a good enough browser.
Then 2008 happened: Microsoft released the first beta of Internet Explorer 8. This wasn’t the first time IE had a public beta phase — IE7 had its own public betas as well. But IE8 represented Microsoft’s first serious commitment to standards compliance. This included passing Acid2, something they were previously indifferent to. Unfortunately, for a while it did seem like an empty promise because there were still numerous issues when I tested the beta builds.
But eventually they came around, and IE8 was released with full CSS2.1 compliance, along with being the default browser on Windows 7, which pretty much everyone agrees was the best version of classic desktop Windows ever until Windows 10. Sure, it did have its own share of CSS2.1-related bugs, but there’s no such thing as a bug-free browser. Plus, there’s a difference between buggy behavior and deliberate spec violations (I’m looking at you, Google).
As for IE? Compliance with what would remain the standard for at least a handful of years yet was something to be proud of. IE8 even boasted support for a small handful of CSS3 features as substring-matching attribute selectors, the following-sibling combinator
~, and — curiously — the
box-sizing property (who wants to bet they implemented it as a throwback to the IE5.x box model? Also see my answer to this related Stack Overflow question). IE9 would introduce support for the emerging new standard of HTML5 along with a number of popular CSS3 features, and versions 10 and 11 would iterate over that.
I joined the IE userAgents community in 2013 via an invitation from Jonathan Sampson, who would later join Microsoft himself. userAgents are people who not only have experience with IE and help fellow web developers with IE issues, but who are also committed to web standards with inclusiveness in mind. And to this day I’m still incredibly grateful to Microsoft for choosing to embrace web standards starting with IE8. Every one of my web projects in the past 8 years (heh) since its release has supported IE8 at minimum, including this very site! Don’t just take my word for it — check out the screenshots (or, better yet, grab a virtual machine and test it for yourself)!
Of course, now that Microsoft is officially pulling the plug on versions 8 to 10, this will be the last web project of mine to support these older versions. Any updates to my site will still support them, however. It’s the least I could do. Besides, it would be disingenuous of me to cut short now.
What an incredible ride it has been. Also, can you believe I actually wrote a thousand words about Internet Explorer (needless to say, entirely on a Microsoft web browser)? Don’t worry, neither can I.
But I know I’m looking forward to another two decades of an open web with Microsoft Edge.
- Unfortunately, no one in the household remembers its hardware specifications. ↩