Joel Spolsky wrote a brilliant post 3 days ago about Microsoft’s Internet Explorer 8 development team declaring that IE8 will enforce standard HTML, and sites that do not confirm to the standards will not be displayed properly. Joel did not wish to take sides in the war between idealists and pragmatists, but eventually concluded that since there are so many HTML pages already written in bad HTML, the pragmatists are likely to win. That means that any web site not specifically declaring support for standard HTML will have to be interpreted in a lenient mode, allowing HTML errors to persist. Joel, however, missed a few points:
- Many pages have not been “coded” in HTML; they were created using web authoring tools (which Microsoft sells), or generated from a database dynamically (by servers that Microsoft also sells). That means there is an information source, passed to an encoder, sent to an interpreter and displayed to the consumer. If the interpreter changes and the encoder changes accordingly, there is no need to rewrite a huge amount of web pages, all that has to be done is to update the software.
- Strict means more efficient. The HTML interpreter, instead of having to go through multiple variations of writing the same thing, and instead of having to simulate 17 hacks, will just use a slim, efficient parser, optimized for the fastest load times.
- “Is it getting better, or do you feel the same?” asked U2. Keeping things the way they are now does not do either – it makes them worse. People will keep thinking of new ways to do things the wrong way, and HTML parsers will keep simulating every hack. Strict parsing is a necessity, not an option. At least, if HTML is to survive, which is not certain.
SIP, RTSP and MEGACO are a lot like HTML. Like HTML, they are plagued by standards that are complex and easy to misinterpret, and the ruling paradigm of strict encoding, lenient decoding is forcing the lenient decoders to become more and more lenient to every flavor out there. There should be a “strict” implementation to SIP, there should be some flag to state that the message follows the “strict SIP” standard, and there should be some migration into that “strict SIP”. What this “strict SIP” is, is left to determine. You see, I don’t think the IE8 team is building a strict parser simply for idealism’s sake. I think even a pragmatist realizes that the “strict HTML” is a necessity. The question is, who will define and dominate this “strict HTML”, and Microsoft wants to be that someone. They will make the new parser faster, better, they will even hand out coupons for using it, if that’s what it takes. They have a lot to gain.