Internet Explorer 8 and Postel’s Law

Posted on March 5, 2008 | Filed Under Software Design

For those of you who aren’t familiar with Poestal’s Law, sometimes also known as the robustness principle, it’s generally phrased somewhat like this in the computing industry:

“Be liberal in what you accept, and conservative in what you send”

Generally speaking, this is a great principle to follow in the field of software design, particularly with respect to distributed systems.  However, there are some very obvious exceptions that we as an industry have discovered the hard way.

The most obvious of these dates back to the browser wars in the late 1990s.  Before then, we realized that writing web pages was going to be difficult for non-technical people.  We thought that by allowing users to write invalid HTML and trying to render it as the user had intended, we would make writing web pages easier for non-technical users.  And for a very brief period of time, we were right.

Unfortunately, the browser wars quickly changed that.  No two browsers had implemented the same strategy for rendering malformed HTML.  In fact, no two browsers had even implemented the same strategy for rendering well-formed HTML.  Technical users now had to test their content on multiple browsers to make sure it looked as expected, in the process hacking around numerous browser shortcomings.  Non-technical users, on the other hand, just tested on their browser of choice.  When they’d reached a point where it looked fine for them, they assumed it would work for everyone else.  They were often wrong.

Now the software developers who originally decided to adopt Poestal’s Law realized the extent of their mistake.  By providing a quirks mode as the default rendering mode, they had given the impression that crazy HTML was perfectly valid, and they couldn’t change this behaviour without breaking a large number of web pages.  If they had originally used a stricter mode as the default, there would be far fewer web pages broken by a future change.

So what does this have to do with Internet Explorer 8?  Rather a lot.  The IE team has just announced that a standards compliant mode will be the default.  This is a change from their earlier plan to use a backwards-compatible quirks mode as the default.  As far as I’m concerned, this is the most exciting news I’ve heard about IE 8, much more exciting than the recent press coverage about Acid 2 support.

This will break a lot of websites, and I’m sure it will annoy the hell out of many users, at least at first.  Even bearing all that in mind, it’s still undoubtedly the right thing for Microsoft to do.  Last spring, I compared maintaining backwards compatibility to running a race wearing a lead vest.  As far as I’m concerned, IE has taken a giant step towards reducing their backwards compatibility cost, and I applaud their efforts.

I hope that this is a taste of things to come.


Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported