The bigger issue is backwards compatibility; the web has bent over backwards to maintain it, which is a blessing and a curse. On the one hand it makes the feature set absurd, but on the other hand the web is (relatively) easy to archive since format interpreters for it are widespread, and pages can be built and then forgotten about because they still work.
I'd like to see that experiment done.
This is talked about in a few videos and articles by it's creators.
The HTML5 parsing algorithm is not _that_ hard:
https://www.w3.org/TR/2011/WD-html5-20110113/parsing.html
Do you really think that the complexity of a full XML implementation of the half dozen specs required to implement XHTML would really be that significant a savings compared to the actual features browser developers actually spend their time on?
You're correct that complex software is what people want but that's complex as in an advanced document layout system with advanced language support, rich media, forms, etc. rather than the format those features are implemented in.
Seriously, XML is arguably bad, but html5 is absurdly horrible. The only reason it's acceptable is because it's so widely used that parsers are huge shared projects and most bugs are shallow.
I guess it's all a matter of perspective: sure, you might argue, hey, the spec isn't hundreds of pages, so it's humanly comprehensible. But from my perspective that's a really low bar, and it clears it just barely.
It matters too, because these weird quirks have often hidden things like performance issues, misparses, and security issues due to incorrect normalization.
https://en.wikipedia.org/wiki/Comparison_of_lightweight_web_...
I think I disagree. Most of my customers don't even want software. They want to watch a movie, or read something, or make some data transform, or something else that is their actual goal.
Complex software is what we make in order to enable them to achieve their goal; perhaps if we were smarter and better, we'd be able to make simple software that enabled their goals.
Or perhaps more useful: domains / classes of such issues?
I suspect a lot is:
- XHR
- JS generally
- Cookies
A heatmap of problem areas might be interesting.
Update: that's sort of here:
Great link!