Tim Bray wrote a short and sweet message to the W3C-Tag mailing list a few months ago that pretty much echoes my thoughts on the issue exactly.
The Web is distinguished from many other information systems in that
its important interfaces are defined, not in terms of APIs or data
structures or object models, but in terms of syntax, by specifying the
content and sequence of the messages interchanged. It commonly occurs
that programmers working with the Web write code directly to generate
and parse these messages. Even more unusually, it is not uncommon for
end-users to have direct exposure to these messages. This leads to the
well-known "view source" effect, whereby users gain expertise in the
workings of the systems by direct exposure to the underlying protocols.
The general success of Web software is evidence that interoperability
in networked information systems is best achieved by specifying
interfaces at the level of concrete syntax rather than abstract data
models or APIs.
My addition to this is that the syntax should therefore be as simple as possible to express everything you need to. Then, you can build everything you need to on top of that simple syntax.
(Via Mark's b-links)
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):