XML is like Cardboard
I had the opportunity to go and listen to Pat Helland perform his “Metropolis: Towards a Service-Orientated Architecture” talk today which, as you can tell from the title, is all about SOA and the eventual impact on the IT industry. In the classical Pat way he draws analogues between software development and the sociological world. His talks used to center around a medieval theme of castles and fiefdoms with messengers running between. Now he draw analogues to the standardization of the railroad industry in the 1800s that brought about rapid expansion and integration in the USA, through to mail post being a classic example of a service orientated industry where asynchronous events (mail packages, letters), are handle by business process units (mail workers, machines), based upon standards (paper, envelopes, stamps etc..) and with an agreed contract (get this to place x before time y for price z).
Anyway the highlight of this talk for me at least, was his one slide about XML which was titled “XML is like Cardboard” (an analogue of course) for which he gave the following reasons;
Malleable - Cardboard was invented in the 1800s, has changed little, is extremely versatile and is central to the mail and packaging industry. XML is like cardboard in that it can be molded to hold any shape from the huge TV box down to the wrapper around a CD case. You can cut it, shape it and reuse it. Amazon could not survive without cardboard and increasingly not without XML.
Self Describing - Cardboard like XML can have information printed on is. “Contains one TV and cables. Made in Japan“. Likewise XML has element and attribute names to describe the contents of the package, the data. Cardboard like XML is a self describing material.
Protective - Cardboard protects the contents in the box and what's more it does not matter what the size of the box is, it is the contents that matter! How many times have you been sent a huge box just for that memory SIMM card, hard drive or other piece of electronic equipment? You have always been glad to have a big protective cardboard box. Same with XML. It does not matter that the format for messages can be verbose; it is the contents of the XML that matters and ensuring that it is safely delivered.
I thought that this was a great analogue. Pity he did not try to think of one for XML schemas which could only be some complex validation system before the cardboard box is handed over (DNA sampling of the receiver?) or for XSLT which is like an IKEA instruction manual - a hundred steps to transform this pile of bits into the thing that you wanted, only after plenty of pain and suffering.