Can software be too tolerant of errors?

The mantra of “tolerant on input, strict on output” (something like that, from Bertrand Meyer) may be true for end-users and maybe even APIs, but would you like your compiler to silently sweep warnings under the rug? In most cases, no.

This is where web development with Firefox gets interesting. Firefox is a good browser in the following two ways:

  • Tolerant of buggy HTML. The whole success of the web is due to tolerance of messy documents, broken links, bad scripting, etc., so this is actually a good thing.

  • Excellent development environment. Thanks to the Javascript console and many helpful extensions (web developer, XMLHttpRequest debugging), development is vastly superior to other browsers.

Combine these two worthy attributes and you have a problem. What would be useful is a strict extension, or maybe more to the point, an IE simulator (admittedly some aspects of Firefox and Opera already aim to be compatible with IE anyway). It would cut down on the double-testing cycle.