yeah I agree that using XML was bad idea in XMPP design, there's no good reason to use it, but XMPP is already thought out unlike any new protocol. But actually I think could use same XMPP protocol and just map on different encoding. What is XML? basically it's just a language for data mapping (an encoding) and it would be perfectly possible to use same XMPP protocol concepts and map them on different data structure. And this is the thing I think should be pursued for. Which encoding to use is debatable. I would say using
Google Protocol Buffers are perfect for network protocols. I haven't investigated how good is MessagePack, but it could be usable too. Only about JSON and similar I don't like that they're "type-less", they have just some basic data types like String, Number etc and you loose information that way, say you've uint32 and you store and transmit that with JSON and on other end it will be probably int64 because that CPU is 64bit, of course you could find shortest fitting type, but that's not practical because you don't know limits of this field, maybe next message it will be bigger. In Protobuf there's types for everything int32, unit64 and so on.