There are so many inherit problems with the existing technologies, that it’s not even worth detailing any of the specific problems, but to mention just a few improvements that could be made.
- Better separation of concerns and better semantics. HTML and CSS overlap way too much, and are way too tightly bound to each other. A lot of even mildly complex designs require the use of HTML mark-up which is completely unrelated to the documents structure or semantics, and purely there to be leveraged by CSS. The style layer should be able to generate purely visual elements, which can be created and manipulated without affecting the mark-up of the actual document (the data/content).
- Common responsibilities should be moved from server-side, to client-side. Form re-population is a good example of something that SHOULD be done client side, albeit with the help of server-side code. The ability to compose a document.
- Better support for web applications. The assumption that web pages or web locations are comprised of web “documents” severely limits the capabilities of web applications. Web applications should have a new URL extension that allows web applications to change state without ever reloading the page. Currently, hackery needs to be used to achieved fulfill even the most basic needs of AJAX-driven web applications.
- Better communications. The fact that HTTP is stateless is great if serving documents, but becomes a limitation for web applications. The fact that only clients can send requests (one-way protocol) is another good example of the limitations of HTTP. No native support for sessions is also a problem; cookies are crap, let’s face.
I’ve written this post to hopefully gauge the opinions of other web evangelists, as I’m sure I’m not the only one with this opinion. It would also be good to hear from those who are adamant the current suite of technologies is sufficient for today’s and tomorrows demands.