This recent OSDI paper [1] has a direct comparison in Fig 8. It appears there is no particularly pronounced distribution or general performance advantage, and TensorFlow actually outperforms MXNet in this comparison.
Think again if you really want that for every service.
I've encountered many poorly written services where I would have been happy if there were a schema to be at least sure what kind of messages are exchanged.
Yes, BUT. The other day someone proposed a JSON 'standard' that mimicked SOAP - don't do that.
JSON is beloved because it's easy and simply. XML was originally simple too with just DTD as Schema. Then they come up with XML-RPC, XMLSchema, XSLT, SOAP and many other complex concepts that in the end more or less failed.
> XML was originally simple too with just DTD as Schema.
The complexity of XML has not changed since its inception.
> Then they come up with XML-RPC, XMLSchema, XSLT, SOAP and many other complex concepts that in the end more or less failed.
This doesn't really has any bearing on the specification of XML itself. XML is simple (with some caveats like entity expansion), and extremely flexible. The problem is that it is designed to be read and written by machines, while still being debugable by people. It is extremely verbose. It shines in some use cases, eg for documents with a complex structure and a lot of semantic metadata. But it is even less suitable than JSON for configuration files, for instance.
the problems with xml (as in "outside the XML-RPC, XMLSchema, XSLT, SOAP stuff") IMHO arises these two / three points
* it's a little too verbose (<xml></xml>.. while even S-expressions use just ')' as terminator)
* there is no obvious way to transform any xml to an object (pojo is the best aproxymation, but how do you differentiate between a sub-tag, a text node, and an attribute?)
* it's essentially typeless (how do you serialize a number? how to differentiate it from a string? from a boolean?)
I agree that it is verbose, but I am not convinced that S-expressions are the solution. In a complex, deeply nested XML document, you should be able to tell where a given tag is inserted without counting parentheses.
> there is no obvious way to transform any xml to an object (pojo is the best aproxymation, but how do you differentiate between a sub-tag, a text node, and an attribute?)
That's OK. Just don't use XML to serialize data structures. IMHO, the use cases at which it is good are a lot closer to use cases for which HTML works than when you hesitate between XML and JSON.
> it's essentially typeless (how do you serialize a number? how to differentiate it from a string? from a boolean?)
That's not entirely wrong, but you can enforce a lot of things via XML schemas (eg, something like XSD or RelaxNG).
1: https://www.usenix.org/system/files/conference/osdi16/osdi16...
[full disclosure, I work on the TensorFlow team]