I had dinner last night with Jeremie Miller, the guy who bootstrapped Jabber, which became XMPP, which is now a widely-used transport mechanism. Jeremie is one of my heroes, he's not rich -- but he made a huge contribution to the richness of the Internet we now use.
He's working on a new protocol. There are a bunch of new ideas under the covers that I find interesting and puzzling, but the net-effect is to provide the decentralized message transport we all want from desktop-to-desktop without going through a corporate-owned cloud, so we can avoid being monetized as crowd-sourced user-generated content with eyeballs. This is the DIY cloud, and it's about fucking time. Imho. ">
Like a small number of brilliant technologists, Miller has a story to tell -- and at first it was a strange story but then it became familiar. Jeremie is running away from XML because he had such a bad experience with the ever-escalating complexity being promoted by people who are less interested in applications and more interested in theory. To the theorists, XML is an infinitely expressive language, and the processors are magic engines that extract meaning from a messy maze of incomprehensible gobbledy gook. To the pragmatists, XML is a file format, a way of providing compatibility between applications written in a diverse set of applications and environments. XML provides a way of giving everyone choice without sacrificing the ability to talk to each other and be heard. Corporations looking to lock-in users favor the former approach because they can claim to be complying with "standards" and at the same time be impenetrable to competitors.
I fought these people, and to their chagrin, won. RSS never included the gobbledy gook. You could write a rudimentary RSS parser in a few hours and despite the slime thrown at RSS by BigCo employees, keeping an RSS parser maintained is a very simple job and doesn't consume much time. Hence RSS became and is a juggernaut, with huge flows of content, not controlled by the big corporations. Not that they haven't been trying. ">
XMPP is a different story. The schema guys won that battle, and apparently XMPP is very complex as a result, and there aren't a huge number of implementations. I say apparently because I don't know -- I have never implemented XMPP, and have never set up a server. I wish I could. I now think I understand why I can't.
This is why I find the arguments of the JSON-only proponents either lazy or dishonest. I don't know which it is. They say that XML is too complicated, but that's wrong. Just ignore everything but elements, attributes and namespaces. That's what RSS does, and it's very simple. If you're designing protocols that are meant to be widely adopted, this is a trust issue. The central node in a centralized system, such as the one being proposed by Facebook, can easily afford to parse many dialects, without incurring much cost. We do it in our aggregators, small developers like Newsgator and Ranchero, I do it in River2 and I'm just a person. Surely the Great Facebook can do what we small fry do? So what is their angle? What are they complaining about? I don't trust would-be platform vendors who won't accomodate all possible developers, esp those who use a language that's so deeply installed as XML is.
In contrast, Amazon supports XML in their web services, quietly and competently. I can't imagine them saying one day "It's too much work for us to keep supporting XML so you all have to rewrite your code now if you want to keep paying us for the web services you use." If that ever happened I'd rush to my broker and short Amazon stock, aggressively, cause they would have lost their minds.
I said it to Jeremie and I'll say it to anyone who will listen. If you're proposing that other people develop on your technology, you should be very mindful to keep the path well-groomed, and don't add cliffs to the trail. We'll see that they're there and go some other way.