Wow.

Probably one of the best reasoned arguments I’ve heard in a long time…would that I could argue stuff half as well. And it’s not even about politics (unless you count XML validation as political…oh, never mind).

[via Critical Section]

9 Comments

  • Doug, I don't disagree at all. But I think that Pilgrim makes a very compelling case for why it's better to accept bad markup than not to. And your argument only bolsters his case.



    Whether the source of bad markup was IE's lack of validaton, or some other cause, the fact that Netscape could not fail gracefully when confronted with improper markup caused lots of problems, for lots of people. If instead Netscape had been designed to warn of improper markup, but display as best it could anyway (rather than just showing nothing which, IIRC, was typically what happened with the missing <table> issue), it wouldn't have been an issue.



    I don't remember at the moment who said it, but I think the applicable quote goes something like this:



    Be liberal in what you accept, and conservative in what you send.



    So, yes, we should all do our best to output (transmit, render, etc.) well-formed XML/XHTML/RSS/etc. But when we write apps to consume others' markup, we should be prepared to cope with improper markup gracefully.

  • If we look at web standards as laws, then we can look at the situation like this: If I'm speeding to visit my client, the Mayor, and am stopped by a police officer, of course the Mayor wants me to get there fast and on time, as do I, but it is the Police officer's job to prevent infractions.



    If we only look at web standards as guidelines, then it is a different story. And there is nothing really wrong with IE...

  • "If we look at web standards as laws..."



    Well, that would be silly, IMO. Standards aren't laws...they're *standards*, i.e. - agreements among specific individuals or groups to follow a certain set of guidelines. They're not enforceable by any third party, so there's really no effective way to "prevent infractions". And if you can't deal gracefully with infractions, then *you're* the one who ends up looking bad, not the one responsible.



    See? I *told* you Pilgrim's arguments were better than mine. ;-)

  • Look at my example again. The Mayor is the user. I am the RSS feed. The officer is the aggregator. The officer has the choice to enforce the law (which is nothing more than a standard agreed upon by a group of people that sort of represent him but did not actually include him and that he has agreed to more or less obey).



    Those who write aggragators are the 3rd parties in this situation and are the only ones responsible for enforcing the rules whether they be standards or laws. Would a police officer issue a warning to the Mayor telling him that I was speeding but he was going to let me go and hope the Mayor would talk to me about it? No. Why would the user want to see a message saying the RSS feed was broken and then have the feed appear to work in the aggregator? How would this deter the person writing bad feeds? Would the user have to contact the site and request they fix the problem?

  • Shannon,



    "Dealing gracefully" with malformed feeds (or other content, for that matter) doesn't necessarily mean displaying an error message to the user, though that's one possibility. I'm not arguing for any particular implementation here, just that one's application should not break if it doesn't get perfectly well-formed input. Sorry if I didn't make that clearer.

  • Then what would the deterant be? Why would anyone bother writing correct, legal code at all? If police didnt' write tickets, why would anyone go the speed limit?



    I would say that IE's handling of bad HTML (as by in someone's reply earlier) did nothing but harm to the web development community as a whole.

  • "I would say that IE's handling of bad HTML (as by in someone's reply earlier) did nothing but harm to the web development community as a whole."



    But you're assuming that Microsoft is the police officer in your scenario. I disagree. Microsoft's responsibility is to give *their* customers the best experience possible. Whether you agree with the choice or not, being forgiving of problems is a plausible way of doing that. As you point out, the person *using* IE is not necessarily the same person *writing* the content. So why should Microsoft punish their users by failing to display content when the creator of the content didn't dot their "I"s and cross their "T"s?

  • and, in my original example, why is the police officer punishing the Mayor by making me late?



    Wouldn't it be better for the police officer to let me go? After all, it is easier for me to speed than to stop and get a ticket. It is better for the Mayor if I am not late and I get there on time. The Mayor doesn't want to have to wait just because I couldnt't be bothered to drive the speed limit.



    Without enforcing the laws, there is nothing to make people obey them. Laws or standards.



    Wouldn't it be better if the clerk ALWAYS said your Visa card went through? That is what the customer wants, after all. The customer doesn't want their card to be rejected.



    The customer is not always right.

  • Shannon,



    Let's just leave it at this...I understand where you're coming from, and I have some sympathy for that position. But I think that there are compelling arguments for the other side of the argument as well, of which Pilgrim's was one of the best I've heard.

Comments have been disabled for this content.