Thou shalt not besmirch Jon Postel, for he was right

Dave Winer posted an article today on “Postel’s Law”. That’s Jon Postel’s famous axiom of software design: “Be liberal in what you accept, and conservative in what you send.” Apparently there’s been a debate in the XML community in recent days (and particularly in the RSS community) over whether the Law is valid for XML. Some, like Winer, argue that RSS readers should only reject invalid feeds. Winer goes so far as to say that Brent Simmons’ NetNewsWire, which may well be the most widely used RSS reader, accepts invalid feeds partially because doing so is in Simmons’ best interests, and not those of the XML community in general.

As Simmons says (albeit in nicer words than me), this is downright silly. Any RSS reader — whether NetNewsWire, Radio, or any other — has to tolerate some degree of flakiness in feeds if it’s going to be used by a wide audience. The reason for that is simple — software has bugs. No matter how perfectly specified RSS is, someone’s going to generate it incorrectly and someone’s going to write a reader that accepts the incorrect feed. Someone else is going to write a library that generates RSS that gets some edge case wrong, and yet another person will write a library that reads RSS that allows that incorrect edge case. That’s just the way software works. At least, that’s how software that users like works, because if an RSS reader starts to reject feeds that other RSS readers accept, some number of its users will switch to readers that support those feeds.

Of course, Postel’s Law works best in a fractured marketplace in which nobody has a monopoly. Web authors for years have been very willing to generate HTML that only IE on Windows handles because IE has enough of a market share that those sites don’t care about other browsers. That in turn forces the hand of minority browser authors — like it or not, they have to mimic IE’s quirks to be able to handle many sites. As long as there are a multitude of RSS readers, though, RSS authors will be under pressure to maintain compatibility with multiple readers, and in doing so they’ll have to at least come reasonably close to adhering to the standard. That’s about as good as anyone can ask for, until some theoretical day years in the future when all bugs are eliminated from software (or at least from RSS generators). Demanding perfection when perfection isn’t possible is simply setting yourself up for disappointment.

1 Comment

  1. Alexei's Weblog Said,

    August 25, 2003 @ 9:43 pm

    It’s short for Jonathan

    I originally wrote this as a comment to a recent entry of Eric’s, but I decided to post it here…

RSS feed for comments on this post