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.



Comment feed for ongoing:Comments feed

From: Alan Burlison (Apr 09 2007, at 14:28)

My own particular XML bugbear is its (mis)use for configuration files, specifically its use by Java components such as Hibernate, Struts and so forth.

I vented about this only recently - The problem is that each component ends up, in effect, defining its own domain-specific language, which just happens to use XML as the syntax, and there's no way of consistently setting values across an given set of XML files

The usage of XML by Ant also seems like another horrid mistake, it really makes a very poor language for specifying build actions and dependencies. Invariably I end up having to write 'helper' scripts if I need to do anything sophisticated that there isn't already an Ant task for.

I'm not sure what the solutions for these issues are, but it certainly isn't XML. And just in case you think I hate XML entirely, I don't ;-) I've used it for documentation and I think it's absolutely excellent for that problem domain.


From: Nico (Apr 10 2007, at 16:57)

Well, XML has been used for data -- there's an XML-based encoding of ASN.1 for crying out loud. Deal with it. Perhaps what we could use is a trivial DTD for non-document data...


author · Dad · software · colophon · rights
picture of the day
April 08, 2007
· Technology (77 fragments)
· · XML (135 more)

By .

I am an employee
of, but
the opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.