March 17th, 2008

Joel Spolksy just spent several thousand words and accompanying diagrams saying one thing: we did things crappy in the past, and we should continue doing things crappy in the future because crap is easy.

Where do I start?

This upcoming battle will be presided over by Dean Hachamovitch, the Microsoft veteran currently running the team that’s going to bring you the next version of Internet Explorer, 8.0.

At a minimum Microsoft can go off and do its own thing in total isolation, and in the long run, Microsoft will end up being the loser. The more I work with SVG and the new CSS, the more I find that I can develop using the new technologies, and the page still works for IE but I don't have to make it look the same for IE. As long as the page is clean, legible, and accessible via IE, it doesn't have to look the same for IE as it does for the Big Three (Firefox, Safari, and Opera).

So I'd say that Hachamovitch is a player, but only to the extent that Microsoft wants to be a part of a larger community.

In practice, with the web, there’s a bit of a problem: no way to test a web page against the standard, because there’s no reference implementation that guarantees that if it works, all the browsers work. This just doesn’t exist.

Question: can you see this page?

There is no practical way to check if the web page you just coded conforms to the spec.

Question: can you see this page?

There are validators, but they won’t tell you what the page is supposed to look like, and having a “valid” page where all the text is overlapping and nothing lines up and you can’t see anything is not very useful. What people do is check their pages against one browser, maybe two, until it looks right. And if they’ve made a mistake that just happens to look OK in IE and Firefox, they’re not even going to know about it.

I'm trying to untangle this one mentally and failing. What Spolsky seems to be saying is that standards don't matter, because people don't test in all browsers, and standards somehow make lines not even up. Or something.

He can't possibly be saying that standards break the web. Can he?

Actually, he can.

Standards are a great goal, of course, but before you become a standards fanatic you have to understand that due to the failings of human beings, standards are sometimes misinterpreted, sometimes confusing and even ambiguous.

The precise problem here is that you’re pretending that there’s one standard, but since nobody has a way to test against the standard, it’s not a real standard: it’s a platonic ideal and a set of misinterpretations, and therefore the standard is not serving the desired goal of reducing the test matrix in a MANY-MANY market.

DOCTYPE is a myth.

A mortal web designer who attaches a DOCTYPE tag to their web page saying, “this is standard HTML,” is committing an act of hubris. There is no way they know that. All they are really saying is that the page was meant to be standard HTML. All they really know is that they tested it with IE, Firefox, maybe Opera and Safari, and it seems to work. Or, they copied the DOCTYPE tag out of a book and don’t know what it means.

There's at least four separate thoughts in these few seemingly related paragraphs. First: there really are no standards, because standards are a thing of the mind. Second, because standards are a thing of the mind, one can't test pages against a standard. One such standards thing is DOCTYPE, which really doesn't exist because no one knows what it does, and people just copy it, anyway. Therefore…

I must admit to getting lost at this point. Who's on first?

And so if you’re a developer on the IE 8 team, your first inclination is going to be to do exactly what has always worked in these kinds of SEQUENCE-MANY markets. You’re going to do a little protocol negotiation, and continue to emulate the old behavior for every site that doesn’t explicitly tell you that they expect the new behavior, so that all existing web pages continue to work, and you’re only going to have the nice new behavior for sites that put a little flag on the page saying, “Yo! I grok IE 8! Give me all the new IE 8 Goodness Please!”

And indeed that was the first decision announced by the IE team on January 21st. The web browser would accommodate existing pages silently so that nobody had to change their web site by acting like the old, buggy IE7 that web developers hated.

A pragmatic engineer would have to come to the conclusion that the IE team’s first decision was right. But the young idealist “standards” people went nuclear.

It's been a long time since I've been called a "young idealist". I wonder how Sam Ruby likes being called a young idealist? I'm surprised Spolsky didn't pat us all on the heads, offer us a cookie. But wait, it gets better…

Almost every web site I visited with IE8 is broken in some way. Websites that use a lot of JavaScript are generally completely dead. A lot of pages simply have visual problems: things in the wrong place, popup menus that pop under, mysterious scrollbars in the middle. Some sites have more subtle problems: they look ok but as you go further you find that critical form won’t submit or leads to a blank page.

Fancy that…this young idealist's web sites both worked with IE8, right out of the box. In fact, the only problem I've had with IE8 is with Netflix and that's because of the ActiveX controls and nothing to do with standards.

I think we'll find that most web sites don't break with IE8, or if they do, they're just as likely break with Firefox 3b, and Opera 9.5b, and the latest WebKit. There's a reason you have a long beta period for a browser–to give people time to make any necessary fixes in order to have the browser work with the page once the browser is released out of beta.

True, there are sites that will continue to break with IE8 once it's released. If you want to find them, go to the geocities.com web sites, and search on muscle cars. Better yet: "Unicorn rainbow pony". Heck, even most of them will *probably work.

Some of those pages can’t be changed. They might be burned onto CD-ROMs. Some of them were created by people who are now dead. Most of them created by people who have no frigging idea what’s going on and why their web page, which they paid a designer to create 4 years ago, is now not working properly.

So the web has to stop because a web site has been burned on a CD, or the person who created the site is dead? Isn't that equivalent to saying, "No, you can't have blu-ray, because I still have VHS tapes"? Or maybe more in line with, "No, you can't have that vaccine because there are people in the world who think the plague is caused by evil spirits, and we have to halt our practice of medicine until they catch up."

You know, it is OK to let old pages break. There is nothing so valuable online today that we have to halt all further progress of the web because of the off chance a page won't be viewable in a modern browser. If it were truly that valuable, it wouldn't be that vulnerable.

Leaving aside vapid, sexist twaddles such as, Mmhmm. All you smug idealists are laughing at this newbie/idjit. The consumer is not an idiot. She’s your wife. So stop laughing (speaking of which, it doesn't matter where the quote arises, Joel, only your use of it to prove a point), Spolsky's whole pitch is basically a race for the bottom. Crap has happened in the past, and therefore we should continue supporting crap in the future. Not only support old crap, but encourage new crap because, frankly, people are too stupid to learn how to do things right. She's your wife, indeed.

In response to Spolsky's writing, Sam Ruby wrote, If people want web browsers that work with actual web sites, they still have three choices. Three good, solid choices, created by three organizations populated by people who don't believe we have to be stuck with muscle cars, unicorns, rainbows, and ponies forever.

*Do scroll down the page and look at the comment annotating the page view counter.

Comments
1
Alan - 11:39 pm March 17, 2008

Well said! While Spolsky's insights were interesting, I too got the feeling he was siding firmly with the Wrong Side despite claiming to see no right answer (and completely ignoring the whole issue of Microsoft lock-in introduced by version targetting).

My biggest quibble with the whole argument is the assumption there are two choices and only two choices: IE7 or IE8 behavior by default.

There are more options!

What about – here's a good one – in standards more, IE could mimic Firefox/Safari/Opera exceedingly closely, dropping all proprietary DOM objects, CSS quirks, etc, and change the user-agent string from MSIE8 to Explorer8 so all old, kludgy browser-detecting scripts fail to identify it as Internet Explorer? That way the only sites that "break" to any degree are exactly those which are already broken to some degree in other browsers.

While that approach may have its own problems, it's not like the world is binary. There is usually another solution, and I think both MSFT and the public have failed to explore those other options.

2
Steve - 1:13 am March 18, 2008

The problem is existing web sites that claim to be standards compliant (by their DOCTYPE) but actually aren't, or simply aren't compliant at all. If IE8 becomes standards compliant, most websites will no longer work, or at least break in horrible ways.

Unless Microsoft can force IE8 onto people using mandatory updates, or every web site that a user simply must be able to use redevelops their website to render to a standard, nobody will use IE8, and the product will fail. How can they win?

For example, John likes to read CNN.com. Or maybe his banking website does something non standard but which happens to currently work. Unless CNN.com and his bank redesign their website to support IE8 (and why would they bother unless their market demands it?), IE8 is worthless to them.

3
Rijk - 2:49 am March 18, 2008

Here's Opera's Hallvord Steen's response. He's one of those that actually have to deal with all those compatability issues, so his perspective is quite relevant.

4
Bud Gibson - 5:36 am March 18, 2008

Rainbow Palace renders fine in FF3b4. I think you're right about simply providing IE8 what it will support. Are we going to have "This page best viewed in …" Long time no see on that one :).

5
Seth Petry-Johnson - 7:13 am March 18, 2008

>Question: can you see this page?

I think you've missed the point. The fact that browser displays a webpage instead of a blank screen or a system error does NOT mean it is displayed "according to the standard". There's a big difference between "I can see the page", "I can see the page and it looks OK", and "I can see the page and it looks the exact same in every browser I view it with".

Joel's point is that the standard is complex enough that different browser vendors might release browsers that technically conform to the spec, but actually render the same markup differently (even if those differences are minor). Without a strict reference implementation to compare to (similar to the ACID tests for CSS), "standards compliance" can never totally eliminate browser rendering differences.

6
Jason Lefkowitz - 8:08 am March 18, 2008

There's a big difference between "I can see the page", "I can see the page and it looks OK", and "I can see the page and it looks the exact same in every browser I view it with".

But one of the (many) Good Things about the Web is that it is a platform for authoring content that can be rendered across many different types of devices, using layout that is appropriate for that device.

Consider the case of viewing a PDF on a desktop PC versus viewing it on, say, a mobile phone. You can be sure that the layout of the document will be exactly the same on both devices, pixel for pixel. But without the desktop PC's large expanse of screen real estate, the phone experience will force you to do a lot of vertical and horizontal scrolling, or to scale the text down so far that it becomes hard to read.

Now consider viewing a Web page on the same devices — the PC can render it in all its glory, and the phone can render it differently to optimize the reading experience on the small screen.

In other words, "doesn't look the same on every client" isn't a bug. It's a feature!

7
Shelley - 8:18 am March 18, 2008

Steve, "If IE8 becomes standards compliant, most websites will no longer work, or at least break in horrible ways." We're not seeing it. Seriously, I have been accessing any number of sites, and I don't see a problem with page rendering.

What we are seeing is that some sites have coded their JavaScript based on user agent rather than object detection, and their script is breaking. But we've warned people about object detection for well over a decade — how long must we support the lazy?

Frankly, I find the assumptions that the world lives by IE to be obscene, at best. Instead of cowering in fear, our best bet would be to encourage them to use other browsers.

Seth, yet here this page renders the same or similar in Opera, Firefox, and Safari, and even (aside from the uses of SVG), IE. In fact, there are any number of pages that render the same or close enough in most browsers.

And who is to say they have to be identical? If we limit ourselves to what will look the same in IE, forever, we'll never advance. At the same time, though, Microsoft will push any number of proprietary technologies out on people, technologies like Silverlight.

I say let the pages be different, and educate the people as to why.

We do not live in the state of chaos that Microsoft is using to push through its agenda. We do not live in the state of chaos that Spolsky is using to create FUD, so that MS can sneak back in that abysmal meta tag.

Rijk, I must say I don't completely agree with Steen, either, but that's best left for another post.

8
Shelley - 8:20 am March 18, 2008

Jason, your comment came in as I was writing mine…

'In other words, "doesn't look the same on every client" isn't a bug. It's a feature!'

Amen.

9

It's early, I'm cranky and am clawing my way out of the grave. You may remember I was one of the first kids to embrace the WaSP, and was a vocal supporter of it's goals when I penned Web Standards and Internet Explorer 5 Part 2(circa 1999) Those were heady days, when the web was shiny and new, the idea that everybody could use a few simple rules and share and discuss anything that could be thought of

You were the evil ASP Woman and I was a WaSP. We wrote, we battled, we became friends. (circa 2001)

I turned in my stinger and black and yellow cape the day the WaSP let Microsoft 'help' them. I haven't lost faith with the goals, but with the players. The reason was simple, Embrace and Engulf. I knew this would happen as sure as gravity. This has been Microsoft's MO since Internet Explorer became part of the Windows Operating System.

Here we are 7 years later, and the standards debate continues. It is an argument Microsoft will win by default. Independent Standardnistas reacted with horror over the Doctype 'add' for making sites work in IE 8. WaSP's have already been lobotomized. The came the announcement of IE8 supporting 'standards mode' by default. MS wins this round as well.

Here is my take on these two announcements. First understand that IE is not a web browser, that stopped with the inclusion of the first ActiveX control, but is a 'viewer' for Microsoft's software, like all those 'free' viewers for the various Office products. 'Seeing' web pages is incendental to the endgame of IE8. The version targeting nonsense was MS's PR move when it thought it's chances were good of getting OOXML approved as a 'standard'. That being in jeopardy, currently, brings us to the 'standards mode default' nonsense.

Being in beta, they get it both ways. With OOXML approval, they go back to version targeting, without they toss a bone to the 'standardnistas', which in either case neatly sidesteps any commitment to XHTML or W3C Standards.

Secondly, they do not have to satisfy thousands of committed designers or developers, they only to convince Blogger, Typepad, WordPress and a few other blog tool makers. A scrap of ie8.css and the google cash flows, yahoosofties continue to connect, and the disturbance in the force is quelled.

As for Splosky, his entire software empire is built on MS technologies, you could have just said, " Spolsky's whole pitch is basically a race for the bottom. " .

10
Seth Petry-Johnson - 9:36 am March 18, 2008

But one of the (many) Good Things about the Web is that it is a platform for authoring content that can be rendered across many different types of devices, using layout that is appropriate for that device.
[snip]
In other words, "doesn't look the same on every client" isn't a bug. It's a feature!

Jason: I'm not saying that a webpage should look the same on my screen as it does on my mobile device. I'm just saying that "standards compliance" should mean that a given piece of content looks the same on different browsers if you hold everything constant except the browser.

Two different "standards compliant" cell phones (given the same screen size and such) should render the web page the same, just as two different browsers should render the web page the same (given the same usable screen area).

That's the point I think Joel was making: until there's a strict reference implementation that shows, pixel for pixel, how a page should render, we'll never truly avoid rendering differences between different browsers that are both technically standards compliant.

11
Joe Clark - 10:20 am March 18, 2008

Jason, a tagged PDF can be reflowed to fit a narrow screen. Even untagged PDFs can be, with poorer results.

12
Scott - 2:50 pm March 18, 2008

There is a hidden truth in what Joel says, specifically about the web pages burned to CD not working. Remember, the IE rendering engine is still embedded deep into Windows. Depending on how the rendering engine handles things, all your compiled help files on your system could break if they don't comply with whatever standards IE8 enforces. It's not that Rainbow Palace won't render, it's that the SQL Enterprise manager might not render correctly! That's a bummer for Microsoft. Their engineers need to figure out a way to comply with standards on the web, while not breaking a "Reader Rabbit" help file or "Encarta 1995" on CD. :/

It's hard to muster sympathy for that particular dilemma, given that it's Microsofts own darn fault. But I see this as a great opportunity for MS to completely break with their past. They have a much more leverage for forcing end users to accept web standards by making them the default for their browser. IE8 could be the line drawn in the sand, "This far and no further with browser specific hacks".

Whoops, I posted the Rainbow Palace on Twitter and I think we brought the site down. ;)

13
Shelley - 3:00 pm March 18, 2008

"Secondly, they do not have to satisfy thousands of committed designers or developers, they only to convince Blogger, Typepad, WordPress and a few other blog tool makers."

That is an issue, especially since "pragmatic" (read that, profitable) is the new black.

Let's see, eight years ago when standards were über hip, I spoke out against the tyranny of the standards when defending Mozilla. Now, I'm speaking out about the necessity of standards. Ah well, no one can ever accuse me of speaking _with_ the crowd.

"Whoops, I posted the Rainbow Palace on Twitter and I think we brought the site down."

Scott! That would be like taking down the entire year of 1999! That's precious web history that is.

14
Jason Lefkowitz - 3:23 pm March 18, 2008

Two different "standards compliant" cell phones (given the same screen size and such) should render the web page the same, just as two different browsers should render the web page the same (given the same usable screen area).

Why, exactly?

I guess I fail to see why the current approach is bad, insofar as the current approach has led to the emergence of the single most widely used and successful electronic document interchange system in the history of mankind.

Sure, the standards have plenty of warts I as a web author would like to see excised. But if I write a standards-compliant page in today's HTML 4.01/CSS2, it looks pretty much the same in Firefox, Opera, Safari, and every other browser that isn't Internet Explorer. There may be minor differences between the non-IE renderings, but whenever you have human beings implementing a standard there's going to be errors and misinterpretations that creep in, and besides it's very very rare that those issues totally break my layout.

And when I view the page on my cruddy cellphone or in Links, it looks good there too. Not the same, mind you. But good, where "good" is defined as "it fits in the environment where it's being presented".

In other words: if you take IE out of the equation, these rendering differences that Joel is so worked up about are pretty much non-issues. I don't stay up at night worrying how my sites (designed with Firefox) look in Opera. I stay up at night worrying how they look in IE. That's IE's fault, not the standard's.

15
Dave - 3:51 am March 19, 2008

Well said.

"If IE8 becomes standards compliant, most websites will no longer work, or at least break in horrible ways."

Oh no they won't.

Thanks to all those who have contributed to the discussion. Comments are now closed, but you can contact the author of the post directly.