Via Simon, Tim Bray posts a follow up to his XML Is Too Hard For Programmers article.
Syntax can be, and has been, interoperable. The definitions of the telephone network, the Internet, email, and the Web are all bits-on-the-wire definitions of what you send back and forth, and they've all worked well enough to change the world. XML provides a nice set of syntax rules that you can stick in the face of a recalcitrant vendor and say "you claim to be interoperable? Well, ship me some XML then." And these days, they can't say no, and this is good for everyone.
XML Confers Longevity When I'm doing a standup speech, I often ask: "Everyone in the audience who thinks they're going to be using the same word processor in ten years, raise your hand." No hands go up. "Everyone who has data around that's going to have value in ten years?" After a minute's thought, every hand goes up. The lesson is clear: information outlives technology.
And yet, as of today, too much of our intellectual heritage is tied up in fragile, proprietary, binary word processor files. This sucks. XML is the solution.
But let's face it, when you parse XML, you get a data structure that is kind of an ordered sequence and kind of a tree and kind of a hypertext. This maps well onto no known programming paradigm. If you're an object-oriented person, you can pretend that XML elements are serialized objects, and that works sometimes, and if you're a Perl hack, you can pretend that XML is an unusually-well-decorated text stream, and that works sometimes. But the impedence mismatch, I suggest, is just a fact of life, and the benefits we get (i18n, interop, and so on) make it worthwhile.
A couple of people suggested that the natural way forward for XML stream parsing is well-done iterators, which seems like a really great idea to me and I'm surprised that I haven't run across any yet.
That seems to be the approach that BEA is taking (this makes me wish I had written a better post for it).
Last, this is really funny:
The Python people also piped to say "everything's just fine here" but then they always do, I really must learn that language.
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):