On Loosely-Joining Small Pieces
Some notes from Adam Bosworth, VP of Engineering at Google, in ACM Queue. The key points, I think, are:
- Extensible, sloppy data formats are good, and
- Loose coupling is good for protocols: use indirection, set clear and simple interfaces, and don't rely on server state when possible.
- XML and RDBMSes don't support the above very well.
Good quotes:
- "Elements in XML with values that are unlikely to change for some known period of time (or where it is acceptable that they are stale for that period of time, such as the title of a book) should be marked to say this. XML has no such model.
- "We shouldn’t over-invest in making schemas universally understood."
And, corroborating my "anti-database" manifesto:
- "Today databases violate essentially every lesson we have learned from the Web."