News for hackers. Stuff that matters.
Re:XMPP Myths by userbinator on Tuesday August 11, 2015 @08:59AM (#10040625)
XML is unnecessarily complex but I think JSON also is.

IRC and MSNP (the early versions, before they started XML-ifying everything) are what I'd consider a good format protocol for the application - a mostly line-based, textual one you can use pretty easily without any client more complex than netcat. They are also extensible enough even without XML.

(Personally, I think it is absurd that a protocol needs to wrap a single text message, the most common form of message that would be encountered, in several times more bytes than the message itself.)

Re:XMPP Myths by joepie91_ on Tuesday August 11, 2015 @09:02AM (#10040651)
IRC has major issues, actually - notably, it's very tricky to parse correctly (and very easy to think you're parsing it correctly when you aren't), and doesn't support more than one space-containing value per 'line'. It's also implemented differently by every single server.

You will need some kind of serialization format for a reliable message protocol. JSON is just the simplest possible format that can reasonably represent common data, and works in 95% of the usecases.

Re:XMPP Myths by amyjess on Tuesday August 11, 2015 @11:13AM (#10041637)
I'm fond of Avro. It has both a compact binary format and a human-readable plaintext format that's nearly identical to JSON (the only difference being that order of fields is significant in Avro but insignificant in JSON), with tools to convert between them.
Re:XMPP Myths by slasaus on Tuesday August 11, 2015 @10:17AM (#10041209)
I personally found BSON* (or maybe protobuf) a better format for a wire protocol. I really miss support for a date type and binary data in JSON (for my own applications).

* http://bsonspec.org/

Re:XMPP Myths by joepie91_ on Tuesday August 11, 2015 @11:03AM (#10041562)
msgpack[1] or LEON[2] might be more useful alternatives, in that case, depending on your interoperability requirements.

[1] http://msgpack.org/ [2] https://github.com/raypulver/LEON