The ongoing guy gets What XML Means pretty well:

XML’s tenth birthday is coming up next spring; here’s my sound-bite on What It All Means. XML is the first successful instance of a data packaging system that is simultaneously (human) language-independent and (computer) system-independent.

All he's missing is that it's best when the computers and humans who are consuming the XML are anonymous or at least unknown at spec time. It's much, much easier to write up simple text files or dbms schemas, but what happens when someone or something you never anticipated wants to read your data? Without XML (at at least ODBC in the case of databases), you're in trouble.

The independence allows integration with what's unanticipated. Often XML is the wrong choice... with every acronym you add to an application, you're cutting your future available workforce in half as well. If it's simple enough to roll in-house and only in-house will use it in the future, go for it. The only reason Word docs are in XML now, and even then only as an option, is because of places like Massachusetts who say that if the format's not open, they're not using it. It's not because the old, closed Word doc format stunk. Quite the opposite. Openness concedes power, on some level, and unnecessary technologies increase maintenance costs.

This is why our ongoing friends say...

A classic Unix-flavor file containing ordinary lines of ordinary text is the best choice of all, whenever you can get away with it. XML’s still a decent option, probably the best, for interchanging things that are (at least in part) meant to be read by humans.

Exactly. Human readable + machine readable + a need to operate with anonymous, unpredicted (though not necessarily unpredictable) consumers == time to use XML. XML is ASCII glorified in such a way that an anonymous machine can still create an outline of it.

Labels: ,