I’ve got mixed feelings about writing this, so I’ll try to stay as objective as possible since I know this is a religious issue amongst some developers. I ran across an email to the www-html list by Shane McCarron talking about how HTML is well… maybe you should just read it for yourself:
Okay, okay… I give up. You are right, I am wrong. IE is broken and everyone uses it, so we are screwed. There’s a shock. Let’s all roll over and keep using 1997 technology and hacking around using weird-ass abstraction libraries to implement “Web 2.0″ (gag-me) on top of incompatible underlying implementations rather than attempting to help the Internet evolve toward something light-weight, fast, and extensible like XML/XHTML.
Tag soup is sooo much better.
Honestly, people. You all disappoint me. But you are right - the HTTP spec does permit this broken behavior and I did not know that. In my world I always personally ignore */* in the accept header. Groups like the OMA have declared that you cannot use it that way for this very reason. Its silly. Oh well.
I will continue to use XHTML ’cause it works well, really it does. Or rather, it works no worse than anything else and it is forward looking. You all do whatever you want. I can sleep at night.
Despite being a little mouthy, there are some good points in here. HTML is really one of the most complex languages out there. It’s nearly impossible for a human to read something and know what it says without the aid of a rendering engine (and often I find people are amazed at what HTML is capable of - in a bad way). I don’t care what anyone says, HTML is not an easy language. Click here and view source to see what I mean (and this isn’t even that complex of an example).