Uncategorized

Explorer Destroyer

Slashdot | Explorer Destroyer – this is an extraordinarily bad idea and will most likely lead to another inter-browser jihad similar to that fought between Netscape and Internet Explorer in the late 90s, and trust me, nobody wants to go through that shit again. The trouble is, the pro-Firefox and pro-Opera and pro-not-IE zealots fail time and time again to understand the practicalities of developing sites and applications for modern web browsers.

The central issue is “web standards”. The W3C sets and maintains web standards which govern the specification and use of the various markup languages and how browsers should interpret said languages. This is all well and good, but only in theory. And it’s a good theory, make no mistake, but unfortunately we have a little thing called “real world” to contend with.

The trouble is that browsers are not standards compliant, which means that website coders by extension will waste their time by coding up a 100% standards compliant website, because the likelihood is that it won’t work, at least not fully, in any browser. Militant (read: non-commercially minded) developers stick to their guns on this, proclaiming that their site is 100% compliant, and to hell with the browsers, it isn’t their problem. Again, they do not live in the real world.

Some browsers are more standards compliant than others. Firefox and other Mozilla based browsers are more standards compliant than Internet Explorer. Safari and other KHTML browsers are more standards compliant than Firefox et al, Opera is more standards compliant than Safari et al, and so on and so forth. But none are 100% compliant. So, when coding up your website, you have to make allowances for this, which often means compromising design and/or functionality in some way. You either do this by changing your overall design, or you make browser-specific hacks. The former is the preferred method, but sometimes you’ve no choice but to do the latter, dirty as it may be.

Then there’s another issue in that some of the official web standards aren’t actually that sensible, with some bordering on pretty awful. Internet Explorer’s interpretation of the W3C standards is very flexible in some areas, and while this is technically not correct and it’s wrong of Microsoft to insist on their on take on the standards (another relic from the Netscape/IE war, anyone remember “Netscape tags”?), some of the modifications they have made are actually pretty reasonable, and really should be in the offical standards.

For example, the IE “box model” (how the browser calculates the dimensions of rectangular areas) in particular makes far more sense than the flawed and illogical W3C version, standard or not. The web development community recognises this particular issue, albeit reluctantly, so Microsoft aren’t all bad, even if their unilateral execution of the modification seems abhorrant to some.

I also tire of the shortsightedness of users of alternative browsers. On asking them why they prefer Firefox or whatever over Internet Explorer, their answers are generally one or more of:

  • $my_browser is more secure!
  • $my_browser has tabbed browsing!
  • $my_browser supports transparent PNGs!
  • $my_browser isn’t Microsoft! F/OSS! (free open source software)

The first one in that list is understandable, IE does have some problems with its security. But that’s nothing to do with how it renders web pages, and that’s the crux of the “standards” arguments. The same applies to the second item. Tabbed browsing is an application feature offered by the browser, and again, nothing to do with the page rendering. It is NOT REQUIRED by the W3C standard.

The third item is a cosmetic extravagence that frankly nobody needs and everybody has managed perfectly well without since the inception of the web. Granted, it would be a nice thing to have, but let’s face it, the web isn’t going to wither and die without it. Then on hearing the fourth item I stop speaking to the person because it’s then clear to me that it’s not about browsers and standards, they just want to bash Microsoft. Yawn. Move on.

IE isn’t perfect, not by any means. It’s old and it’s unsecure and its liberal take on published web standards can be infuriating. But it is a good, solid and above all popular browser, which 90% of the world uses. So while that’s still the case, developers working to a budget and who have to deliver return on investment will more often than not develop a site for IE, and then see what they can do to get it to work in other browsers, and even then they’ll probably stop at Firefox, the second most popular browser. Beyond that it’s just not commercially viable to spend time satisfying the various levels of standards compliance demanded by every subsequent minority browser. Sorry, but we don’t live in web standards utopia yet, we live in the real world, and we’ve all got to try to earn our keep in it.

This is a quite insightful comment regarding the perception and reality of standards:

I think you’re mistaking a standard for a formal specification.

I agree with you that it would be great if the whole browser world followed W3C recommendations, given their popularity outside the IE world, and the fact that they are formally specified. However, the word “standard” implies a widespread acceptance, and the only player in that game today is defined by “what IE 6 does”. Calling most specifications about the web from the W3C “standards” is, unfortunately, rather misleading; you cannot have less than 1/5 of the market share and claim to be any sort of standard, and AFAICS the W3C themselves rarely use that term.

You don’t like it. I don’t like it. But it is the way things are, and for the foreseeable future it’s the way things will be […] .

Returning to the subject of the referenced article, Firefox isn’t the holy grail of web browsers, so promoting it in such an invasive way is, in my opinion, no better than site that won’t let you in unless your’re using IE. Firefox lacks features just as Internet Explorer does, and it certainly does not have halos for standards compliance or security. Want a list? Be my guest.