It's Meh Again
XML versus JSON
A common preoccupation of philosophy is the study of fallacies. I'm unsure how it became this common, I can only presume that scaring up a shared definition of what the truth is has over time proven to be such a dastardly headache-inducing activity that coming up with a list of every way in which one can be wrong might have seemed easier — if only because not only can you drink at the same time, but being drunk is actually a superior methodological approach to producing what is indeed a very, very long list. Or maybe it is because after a few years' worth of honest debate, the young, starry-eyed philosopher grows tired of having his buttocks handed over to him in separate bags by less honourable wranglers. Schopenhauer's Art of Being Right certainly lends credence to the latter.
In a recent blog post, Manu Sporny essentially makes the claim that JSON is better than XML because SOAP is dreadful. That's like saying that receiving a kick in the head is better than eating because nato or andouillettes are crimes against the palate. Step one: take the worst instance of something. Step two: generalise its properties to the whole class. Step three: declare victory, truth, and beauty to be forever yours. Yup, there's an informal fallacy for that.
Am I being caricatural of Manu's position and unfair in my characterisation? Yes? Really? Good. Because that's the only way this non-debate can be reheated enough to matter.
More to the gist of the matter, Manu further claims that “XML experts” are “missing out” on the fact that JSON is simpler, and that a number of online APIs dropping support for XML is big news. I fail to see how that's the case. Having spoken numerous times at XML conferences about the virtues of JSON and its surrounding ecosystem, I can only say that it is generally well received in the XML community and has been for a while by now.
In fact I'm going to stick my head out there and claim that anyone who's used XML-RPC knows that there's a problem in using XML for the sort of data that JSON captures. For those even younger than I, XML-RPC came out in 1998. Pinning down the exact date of its death would be difficult as it usually is with technology, but let us say that it most certainly isn't alive, and hasn't been for a while. In other words, this is hardly new information.
Yes, there are some vendors who've been selling solutions labelled "Web Services" for a long while that have a limited relationship to the Web and are generally a disservice to whoever ends up needing to use them. Yes, they will keep selling them. And yes, some people will listen. Well — people use Oracle databases and MS Word when they don't need to, is anyone surprised? Is this newsworthy?
If you need a generic syntax for documents, XML rocks like nothing else we have on hand. If you need the ability to orthogonally layer all manners of decorative data inside the same data representation, then again XML will be very good. Most web services don't match either description, and that's fine. That's why it wouldn't cross my mind to use XML for them. Frankly, I thought that was a settled debate. 1
That's why this “debate” is really a "Meh Moment". The only thing that surprises me is that apparently Twitter, Foursquare, or Digital Bazaar only noticed that just now. I guess it might be because they weren't around yet when the rest of the world found out. Beyond even web APIs, XML was largely dropped from the major parts that it had occupied in Web development several years ago. There was a time when the likes of Cocoon and AxKit were the bright future. When the "X" in AJAX was for XML. But that's been long over. So what's the hubbub here? If it really is that some Web companies are dropping support for XML in their APIs now, all I have to say is “Dudes! What were you thinking before?”
So indeed there is no “XML versus JSON” debate. There is, however, a much more interesting related topic: is there value in building a better bridge between XML and the primary continent of Web technology? If so, what specific areas would you like to see bridged first? Forgetting what you hate about either side, forgetting the politics of changing this or that technology to make it work, what would you do first? ∎