'e' is for evil
Or when web development stops being fun...
Last week‘s “Demystifying Web Development” talk at GlasMug was a lot of fun for me: I hope it was equally fun, and informative, for the audience too. One slide from my Keynote presentation got quite a few laughs, and more than a few knowing nods from the audience — the knowing nods being a sure-fire way of spotting those web developers who have had to battle with the biggest obstacle to having fun with web development: Internet Explorer.
‘e’ is for evil.
When we’re developing websites or web applications we work with standards-compliant web browsers: Safari and Firefox. Once we have everything working we then concentrate on getting it to work on Internet Explorer, typically versions 6 and 7, but often going back to older browsers depending on the target market for the website or application. This is typically when the fun stops and the wailing and screaming and tearing-out of hair begins.
Much has been said about IE6’s poor support for CSS (I think I'm being extremely diplomatic and polite by phrasing it as ‘poor support’) and there are a number of techniques available to help persuade IE6 to render sites in such a way that it looks something vaguely approaching the original intent. IE7 has much better support for CSS, but is still lacking support in a number of areas. To accommodate these problems we typically use Internet Explorer’s Conditional Comments to put all the fixes in separate CSS style-sheets, rather than use CSS-related quirks and hacks to embed the fixes in the main file.
<link rel="stylesheet" type="text/css" title="fixed content" href="/_resources/styles/default.css"></link> <!--[if lte IE 6]><link rel="stylesheet" href="/_resources/styles/default_ie_fixes_6.css" type="text/css" /><![endif]--> <!--[if IE 7]><link rel="stylesheet" href="/_resources/styles/default_ie_fixes_7.css" type="text/css" /><![endif]-->
This allows us to use default.css for standards-compliant browsers, with fixes for IE6 and below in default_ie_fixes_6.css, and fixes for IE7 in default_ie_fixes_7.css.
This approach keeps things nice and neat, but we still have to spend the time getting the site to work properly in IE — time which could have been spent improving the site in general, or time and money which could have been saved: it just seems like an additional tax on top of developing sites. So why don’t we code for IE in the first place and then make sure it works elsewhere? After all, isn’t IE the dominant browser out there? Well, unlike the developers who target IE solely — and who then happily stick on a disclaimer such as “This site works in Internet Explorer — please upgrade your browser to the latest version of IE”, thereby using the word ‘upgrade’ in a way I can’t quite comprehend — we want to make sure our sites and applications work in all browsers, not just one. We also want to make sure that our HTML and CSS is pure and standards-compliant so that we’re working with the growing segment of the market — standards-compliant browsers — rather than the shrinking segment.
So, is IE’s market share shrinking? Fortunately, for those who want a standards-compliant world, yes. The interesting thing is that IE’s market share is now split into IE6 (and earlier) and IE7, and their overall market share is being fought over by Firefox and now Safari for Windows. But the other interesting thing is to consider the split not to be between IE and everything else, but to consider the split to now be between IE6 (and earlier) and standards-compliant browsers, with IE7 moving a lot closer to the standards-compliant side. This makes a lot of access statistics look a lot nicer for those wanting a standards-compliant world, as Firefox and Safari for Windows and IE7 all continue to eat into the market share taken by IE6 and earlier.
Which makes me think about Safari for Windows a bit more: is it just a desire on Apple’s part to give Windows users a taste of something better than IE? Or is it just a way to give Windows-based web-developers an easier means of testing their websites on Safari without having to actually use a Mac? Or is it just a way to help development of web-based apps for the iPhone? Or is it just a way to get lots of money out of Google?
Perhaps it is none, one, more, or all of those things. But what if it is also a trojan-horse: to help accelerate the shift towards standards-compliance? Firefox did a great job of getting market share from IE but what if its growth cannot continue — what if it has already reached most of those users who know of its existence, and want to switch? Will Safari for Windows be able to take greater market share by appealing to all the Windows users with iPods, iTunes and iPhones, rather than those with a fondness for open-source and a willingness to download Firefox?
Regardless of motive, the combined effort of Safari for Windows, Firefox, and also IE7 itself will accelerate the shift towards standards-compliant browsers, but will also bring in an era where no single browser version will have the overwhelming dominance that IE6 had. And this has to be the best thing for standards: IE6 single-handedly delayed the adoption of standards such as CSS throughout the entire web-developer community through a lack of support and an unwillingness on Microsoft’s part to improve the situation, something it was able to do for years due to its market share. In a future world where no individual browser version has the ability to be such an obstacle we will hopefully see standards evolve quicker, which has to be to the benefit of web-developers, and ultimately all of us browsing the web.







Post your own comment here:
Note: be friendly! We reserve the right to moderate inappropriate, offensive, or wildly off-topic comments. Your email address is required, but won't be displayed. All comments are moderated, so don’t expect them to show up instantly.