Why couldn't (La)TeX's layout model be as simple as CSS's layout model?

If you read the Ph.D. thesis of Håkon Wium Lie's you will see that a lot of the concepts of CSS were based on TeX and LateX. Wium Lie and all the other contributor's to CSS came up with a system of separating content from presentation for HTML. The numerous forums and tutorials on the web is an indirect proof that the CSS model is not the best either. You probably find it easier as you are used to it. In addition CSS does not provide any means of programming. This has to be done via JavaScript. It also cannot help with mathematics etc.

When Knuth invented TeX, there was no Computer Science, no web, no html and no CSS. My personal opinion is exactly the opposite. If html was marked as LaTeX life would have been easier, the web would have looked better etc. If there is one aspect that I agree with you is the lack of a <div></div> concept and the ability to float sections left or right. This can be done using TeX but not as easily. There is an XML version of LaTeX called tralics perhaps you can have a look as to how it could have looked!

Edit

The current shortcomings of CSS/html can easily be observed by the fact that there are over 500 billion pdf documents on the web and the best way to create a pdf currently is with one of the TeX->pdf engines.


Note that the CSS layout model is not simple, because it includes a concept of stitching together boxes both horizontally and vertically, which is tricky (1) . The apparent simplicity of CSS lies in how parameters are passed to the layout engine, through stylesheets; by contrast, Tex uses a famously hard-to-master programming language to associate these parameters with the objects in the layout's domain model.

Also, there is one universally recognised reference implementation for Tex; CSS versions one and two were introduced during periods of intense fighting in the browser wars (2), which made it easy to produce some sort of document with the CSS2 box model, but far harder to ensure a good reader experience that with Tex.

The other important, growing Tex-based typesetting platform, Context NG, actually does permit specification along the lines of style sheets, using its \...setup commands and its supported for named setups: to the extent that this is more complex, it is in small part due to the historical tie to Knuth's macro language and the larger part due to supporting far more sophisticated layout needs. I seem to recall there was substantial work done in the Context world on laying out directly from simplified CSS stylesheets; links to the current state of this technology would be appreciated.

The why is about ideas: the ideas about programming languages, document presentation, and abstraction that guided the design of CSS came after Tex. Both Context and Latex have aimed to reduce the coupling of layout issues from content. It's an ongoing effort.

(1): I say a bit more about comparative complexity in my answer to What are the differences between the CSS and Latex box models? at Stack Overflow

(2): Read Nicole Henning's from-the-library-trenches account of the browser wars, from the perspective of MIT's efforts to promote internal usage of web standards. Now, with CSS version three, there is no dominant browser; instead, the HTML5 and CSS3 web standards represent a sort of peace treaty.