The Internet Explorer Five Step Recovery Program

June 30th, 2010 by Mike Wilcox

My name is Mike and I use Internet Explorer.

The IE9 Preview is looking strong, and Microsoft is bowing to the pressure of standards compliance. The IE9 Acid3 Test, which checks for CSS3 capabilities, is currently a very impressive score of 83; not very far behind Firefox’s 94. The release notes are a dream come true to anyone who’s done web development over the last ten years. Or is it too good to be true? If they didn’t include canvas in the next release it still might be years before we really have a full feature set of browser tools to work with, and canvas being arguably the most versatile, would be the most egregious omission. But the IE Team recently laid our fears to rest and updated their IE9 feature list to include canvas. Should we get excited? Or is this our abusive ex-boyfriend giving us a puppy? Before I’m able to seriously consider Internet Explorer as a viable platform, I may need professional help in order to get over the last decade…


Neglect

For the last few years, development of IE has been geared toward the end user. Accelerators? Wooo hoo! Simply highlight a word or phrase on a page and discover a faster way to get the information you need. Web Slices? Wowee! Puts you in control of the information you care about most! These “advancements” have been made with a total disregard to web developers. Akin to building a car with a real pretty color, but gives the mechanic fits because to change the spark plugs requires removing the dashboard — and to remove the dashboard you have to use both SAE and metric wrenches… and Allen wrenches… and Torx drivers… and a cutting torch. And then the spark plugs unscrew with a custom, one-of-a-kind, spark plug removing tool designed for cars with pretty paint.

Abuse

Still developing to the ten-year-old IE6. Use innerHTML for everything or else its slow… except for tables or else it won’t work.  Can’t insert block elements into inline elements. Error, line 0 column 0: Object expected. A developer lexicon of CSS Hacks. Memory leaks. Develop in Firefox, fix IE8, then IE7, then IE6…. repeat. DOCTYPES. So many bugs that they’ve started giving them cute, fuzzy names: Disappearing List-Background Bug, Unscrollable Content Bug, Duplicate Indent Bug, Escaping Floats Bug, Creeping Text Bug, Missing First Letter Bug, Phantom Box Bug…

Just lock me in a dark room and continue the beatings until my morale improves.

Depression

Nobody despises IE more than I do. IE8 is little more than several years of bug fixes layered on top of IE4. When a developer hears a client utter the words “We want you to build us a web application and it does not need to target IE” we hoot and holler and dance around like we’ve just been invited to a sorority pillow fight. The problem is, armed with this fantastic ability to use HTML5 components, native JavaScript features like array methods, accessors, and a wealth of CSS3 feature functionality such as rounded corners (gasp!)… we tend to stare at a blank screen like we’d just survived a ten-year tour in Afghanistan defusing bombs with duct tape and a toothbrush. We’ve been using the same technology for so long we haven’t realized that we’re boiled frogs.

Anger

MS has finally started listening to developers, but they should get less credit than the developers themselves, who have been screaming louder than a politician with no lobbyist money. Without fail, any post on Ajaxian about IE would always garner the most comments, and these comments were far from favorable… with any semblance of IE support being more like “Hey the subnormal, mentally defective kid writes his name really well!” The IE Blog has been routinely bombarded with flames. The IE Team could actually write “Took the weekend off for a charity event and helped raise one billion dollars and eradicated children’s diabetes!” But they would still see a comment in that very blog post like “You broke VML fonts! When will you morons fix this lame excuse of a God forsaken abomination of a browser? You guys SUCK!!!!” EDITOR’S NOTE: Mike has since apologized for that comment…

So after all these years of abuse, we’re not sure whether we think this puppy is legit or not. After all, it only took them 10 years to implement the 1998 spec for CSS2. IE7 wasn’t released in an effort to promote web standards – it was released because they were losing market share to another browser that had these things called… “tabs”.

Forgiveness

Without looking too deeply, the only missing items I see on the IE9 feature list are MathXML which I don’t personally use but is important for academia, and WebWorkers. Missing WebWorkers is a bit of a disappointment, but it is still early, and they could still pull that rabbit out of their hat. If not, we may need to wait until IE10 to do high performance coding like 3D. They are missing CSS animations too, but admittedly, that specification is still an early working draft.

The browser looks to not only be standards compliant but bad ass fast, thanks to hardware acceleration. Video, SVG, and even canvas all use GPU acceleration. The performance tests shown on a recent blog post video are fantastic, with IE9 just stomping the bejesus out of Firefox. The IE Team promises, and shows, that building web applications in a browser will utilize all the power of Windows and the computer behind it – so they will be just as powerful as any desktop application… and sometimes more so.

More kudos to the IE Team. As I was writing this they posted a new blog on their JavaScript engine Chakra. They already had impressive performance thanks to compiling JavaScript source code into high-quality native machine code, a new interpreter for executing script on traditional web pages, and improvements to the JavaScript runtime and libraries. Their latest release includes new features like array methods, accessors and ECMAScript 5 support. Yes, other browsers have had these for years. I actually give them extra credit for not introducing anything new, and instead focusing on doing things right.

…or Stealth Puppy?

Is MS building a powerful browser that can beat Firefox into submission and rival the tough kid, Webkit? Or are they lulling us into forgiving them with this cute little GPU-powered puppy; and when we get it home we find that it chews up our underwear, knocks over our trash and pees on our bed? Will this be a solid application platform or a bug-ridden mess?

Conclusion

We’re hoping Microsoft has matured, but we’ve matured as well. As developers we’ve learned not to complain about having to write code that works on both Netscape and IE – the horror! We’ve seen the dark side in having to develop to Firefox, Webkit, and IE8, IE7 and another big gob of messy IE6 code. We get it. Microsoft, give us a great browser like you did ten years ago, so we can say strange things like “Gee, I wish IE had a Mac version.”

Tags: , , , , , , , ,

5 Responses to “The Internet Explorer Five Step Recovery Program”

  1. Sasha Firsov says:

    Hi Mike, I was kind of expected the blame on developer support and lack of responsiveness on IE developers site and from everyone. But when it come to browser comparison, there nothing better on JS load crunching. Even with “old” IE8 engine it beats everyone, often 10 times on JS survival and timing. In regards to standards, it has been leader in many areas. 2D graphics in VML was polished to perfect when SVG made baby steps. I have rounded corners/gradual shadows using those a while. IE was first offered reusable and cross-domain UI AND behavioral components. Since IE6. Who else have that ability without JS rendering?
    IE have been first to implement binary compiled multi-threaded widget engine in face of XSLT. Who else has it?
    IE has only 100% coverage web help for their browser. Who else has it?
    I could continue quite a bit…
    Yes, it is not perfect. But for god sake, those guys made amazing job! Go IE, go!

    PS. I am not MS correlated in any way. Working in cross-browser and cross-platform environment. Changing browsers where I could for better. Unfortunately only teams for embedded browsers are willing to improve browser due to quite restricted resources environment.

  2. Mike Wilcox says:

    Sasha, IE6 was a *great* browser (an original draft testified to that, but I cut it in favor of the humor and flow). But after that they went to sleep. IE7 was a joke. IE8 was a little better, but frankly is what they should have turned out in 2004.

    I do want IE to implement cool, innovative features like some of the one you list (the ones in which I can figure out what you’re talking about anyway), but first they need to catch up on simple standards compliance.

  3. developer says:

    The IE team has caused so much trouble for all of us….
    causing hours of frustration.

    It will be better if the stop making browsers no matter how good they promise to be from now on.
    Why can they have updates between versions if something is wrong or buggy it will prompt the user to update IE9 to lets say version 9.2223 and so on, this will allow all of us not to have to wait another 3 years for the next release

    enough is enough…

  4. Dan Beam says:

    Cool, whatevs, there’s a new version of IE out (this time it’s 9). Whoop de doo!

    Now make everyone drop IE6, 7, and 8. See how many years that takes…

    M$ should more actively embrace Chrome’s very creepy but effective model of forcing the user to upgrade without their knowledge. In the spirit of Machiavelli – the end will justify the means.

  5. Yuhong Bao says:

    “IE8 is little more than several years of bug fixes layered on top of IE4.”
    Well, I hasn’t disassembled it in enough detail to really be sure, but from the bugs I think they did indeed rewrite the CSS engine for IE8. But yes it is still based on the same architecture as IE5.