This is real news: James Clark has a blog, and in it he says “Any damn fool could produce a better data format than XML”. Um, James was designated Technical Lead of the original XML Working Group and is the single largest contributor to the design of XML. Also, perhaps, the finest computer programmer I’ve ever had the privilege of working with.
Let me provide some exegesis: we designed XML as a document format. When the world gleefully seized upon it as a data-packaging/RPC tool, that was OK, but I doubt you could get any of XML’s original designers to disagree with the statement that JSON, for example, has all sorts of advantages for wrapping up short-lived strongly-typed data. Not that the designers of JSON are any kind of fools.
By the way, I remain pretty convinced that XML, rather than JSON or equivalent, is the right foundation for the Atom Protocol, because one of its design centres is posting and updating documents.
Anyhow, as of now James has a long piece up, Do we need a new kind of schema language? It contains more hard-headed sensible discussion of the issues programmers have with XML than you’ll find in a dozen average essays on the subject. If you’re doing original work around the intersection of messaging and programming, you need to read it and think about it.
I don’t agree with all of it, but I’m going to hold my peace until James has had the chance to do a little more work on his TEDI proposal.
There are half a dozen gems in James’ piece that I’d like to reproduce and highlight, but I’ll pick just one:
XML is fundamentally not OO: XML is all about separating data from processing, whereas OO is all about combining data and processing. Functional programming is a much better fit for XML: the problem is making it usable by the average programmer, for whom the functional programming mindset is very foreign.