If you’re starting to incorporate some HTML5 and CSS3 into your pages, then you’ve probably also looked into the possibility of polyfilling those features for older versions of IE.
Of course, you could instead opt for “progressive enrichment” and leave IE in the lurch while prettying things up for the newer browsers. That’s the method that Andy Clarke recommends, and it’s certainly a valid option.
But if for whatever reason (usually something political or the fact that the client demands it) you have to give IE a similar experience, then you face a very bizarre circumstance.
The newer browsers (Chrome, Safari 4+, Firefox 3.6+, IE9) get the clean, optimized, standards-compliant, best practice code.
Internet Explorer versions 6-8 get the scripting hacks, jQuery plugins, the IE-only filters, the extra stylesheets, the CSS hacks, and other horrors.
And let’s not forget that for many client projects, you’ll end up serving your slowest code to the most users — IE users.
Do you see the problem here, besides the fact that this whole thing becomes a maintenance nightmare?
Shouldn’t the Good Browsers Get the Junk?
The truth is, IE6 and IE7 cannot handle those extra scripts, filters, and CSS hacks well at all. Those browsers are slow, and they are almost always on Windows XP, which makes them even slower.
IE8 is better, but is still slower than its competitors at handling scripting, and many IE8 users are still on Windows XP too, making IE8 much more prone to crashing and overall slow page rendering.
Think about it: In any battle, you always want the toughest competitor facing the toughest challenge; you never throw your weakest competitor into a difficult fight, because you know he’ll lose.
If Chrome, Firefox 4, or IE9 had to absorb those scripts and hacks that we throw at IE6-IE8, it probably wouldn’t be so bad; those browsers are built to handle much more. But that will never happen.
Instead, we have a bizarre pickle to deal with: We give earlier versions of IE tons of junk that they handle quite poorly, and we give nice clean and optimized code to the toughest and most stable browsers.
Knowing the importance of branding, the crucial need for page speed, and having knowledge that Google now considers page load times in their search results algorithm, this is quite a problem for any development team that needs to support older versions of IE.