Joel is from Mars, browsers are from Venus

There is a new and very Spolskyesque article on browsers, web standards and IE8 just out from the one and only Joel Spolsky.

Some selected quotes.. On the IE8 team being stuck between a rock and a hard place:

"The IE team has to walk a fine line…" This is incorrect. It’s not a fine line. It’s a line of negative width. There is no place to walk. They are damned if they do and damned if they don’t.

On why "standards" generally aren't:

despite general agreement on what constitutes kosher food, .. you will not find a rabbi from one ultra-orthodox community who is willing to eat at the home of a rabbi from a different ultra-orthodox community. And the web designers are discovering what the Jews of Mea Shearim have known for decades: just because you all agree to follow one book doesn’t ensure compatibility, because the laws are so complex and complicated and convoluted that it’s almost impossible to understand them all

standards are sometimes misinterpreted, sometimes confusing and even ambiguous (…) it’s a platonic ideal and a set of misinterpretations

It's all so true. The web is badly under-specified (and quite likely anything as large and complex as the web and its underlying technologies would be, wouldn't it?).

However, while Joel has been busy selling MP3 players on Mars and watching Microsoft there are a couple of developments he's missed: maybe, maybe Microsoft has moved from what he calls a "pragmatist" position to an "idealist" position – but at the same time, the good old consortium has sort of moved in the opposite direction, from the merry idealism of un-implementable X-es to the grassroots pragmatism of HTML5.

Today the standard ITSELF is in beta, and planning to be in beta for a while among other things in order to figure out if it is compatible with the Web content. Standards Trotskyists are not cool anymore.

Joel asserts that we're dealing with "some mythical, platonic 'standard' that is not actually implemented anywhere". Actually, any modern standard has a reference implementation, it's called a test suite. (Note that I'm using circular logic here: if a standard doesn't I won't call it "modern" :p ) HTML5 will even have reference parsers. It's not quite the mind-reading validator which checks that your CSS rules are according to the spec and do what you had in mind. A site's compliance to the standard can't be tested beyond basic structural validation – but the user agent's compliance can! And the IE team understands this situation very well, as evident from the fact that one of the spin-offs from their CSS 2.1 implementation is a public test suite!

For all those websites Joel found that were broken in IE8, some of them may be broken due to bugs in the new implementation, some because the IE team fixed their CSS parser before implementing the specific issue a parser-based hack worked around, some because of the site violating standards generally and the rest – the whole lot of them – because of user agent sniffing. Every site and every detail needs analysis. We don't know yet to what extent the improved standards support causes these failures. Microsoft will have to figure that out over time and see on each count what there is to do about it. Even if it's down to the nasty quirks of client-side browser detection it may be possible to add workarounds. For example, if it turns out that most CSS served within IE conditional comments is now harmful, IE8 could stop parsing STYLE and LINK rel=stylesheet tags inside conditional comments unless the comment explicitly targets IE8.

Finally, Joel describes a world where the players don't cooperate. Today browsers are from Venus, we've spent more than 10 years exploring each others' quirks and collaborate on making compromises. Compromises that can be disappointing but useful. Joel is excused for not noticing, since we already know he's from Mars.

Advertisements

10 thoughts on “Joel is from Mars, browsers are from Venus

  1. I think you've made a good argument with regards to standards compliance (hooray test suites!), but you missed the larger bit of Joel's point: Standards compliance does not prettiness make.fearphage and I have this argument quite a bit… If 60% (or is it 40% now?) of the users of your site use a browser that isn't standards compliant, you now have a terrible choice — risk asking the non-techies to upgrade this thing they barely know about, a "web browser", to a more standards compliant one… or code a "broken" web page that at least makes the users happy.I lean towards making the users happy as much as possible. I'll deal with the pain of non-standards compliance once, rather than asking each of my users to bear that pain for me. What do you think?

  2. I think "graceful".As in "graceful degradation". Depending on site, audience and the time you have available you spend more or less effort on the "graceful" part..But then, while working on this blog post I also noticed this absolutely wonderful quote:"the gap between theory and practise is smaller in theory than in practise":)

  3. Indeed. Nice post.Originally posted by hallvors:

    being stuck between a rock and a hard place

    Does that mean that the rock isn't hard? 😛

  4. That is a beautiful quote. It's funny precisely because it packs so much truth into it.I don't think there's any doubt that in order for the web to be the way people want, i.e. "it just works", it is vital that everyone standardises on the same thing. The question is what, and it seems Joel is edging towards "whatever MSIE does" rather than "what the W3C says", mostly because the web now is more the former than the latter.There is pain no matter which way you choose. Based on their track record, the MS way would result in web stagnation. The W3C way would bring lots of new and useful features, but at the cost of the existing MSIE-only web sites.I really don't see why you can't bring Darwin's Theory of Evolution to the web. Those sites that can't adapt should die, and those that can keep up with the new standards will thrive.

  5. Hi Hallvors,the post is ok except for the statement about "any modern standard" that "has a reference implementation".Do you really mean there are no modern standards on earth not counting ECMAScript (http://www.ecmascript.org/) which really has reference interpreter?because i can't find any reference implementations for CSS and HTML. Maybe w3c just should point to FF and call it "reference implementation"? this could solve our little problem 🙂

  6. What I'm saying is that a proper test suite is a reference implementation of a standard. It resolves ambiguity in the spec text and defines expected behaviour.HTML4 has no official test suite AFAIK. HTML5 will have both test suite(s) and reference parsers. The DOM specs have test suites though cumbersome to use and incomplete (where are the DOM2 Style and DOM2 Traversal&Range tests?). CSS has somewhat incomplete test suites, not sure how incomplete they are but it's great to see Microsoft help out there. ECMAScript 3 has no official test suite. SVG has. The world is a work in progress, as usual.

  7. OK Joel Spolsky is off with his claim of 98% browser share for a future IE8 but his claims of the many many standards is true.http://css-class.com/test/css/overflow/float-container-overflow.htmGecko 1.7~1.8, Gecko 1.9, Opera 9.50, Opera 9.25, Safari 3, IE8, IE7, IE6 will show the test case different. The same applies in this test case.http://css-class.com/test/css/viseffects/overflow-box-next-to-float.htmThe CSS specs do not specify what should be happening.We have the CSS2.1 test suite. Each browser implementer will test it browser against these test cases to see if it is CSS2.1 standard compliant. I presume that the browser implementers have there own internal test suites that each browser implementer test there own standard against.Along comes a IE team ready to make IE8 a CSS2.1 standard compliant browser. The IE team test there browser against other browsers with very simple CSS2.1 test suite cases. Remember the IE can not work out the desired behavior from the CSS2.1 spec alone since there are many holes. The IE team can only emulate one browser behavior here and emulate another browser behavior there. Not much mixing of properties occurring. Now when IE8 tries to render particular web pages IE8 breaks these pages apart since there is not many test cases out there that is mixing CSS properties. IE8 only breaks these pages since there are quite a few inconsistencies between Gecko, Webkit and Presto.So how many many standards do my test cases show?

  8. Anonymous writes:All I know is I allowed Vista to update to IE8 last night and now I can't log into one of my banking sites and the Bill Pay Popup window on the other banking site is broken!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s