It was quite some time ago now, but I used to truely think that binary protocols were the spawn of satan, and that text protocols like HTTP were the only way forwards. After recently implementing my first binary protocol in quite a while, in a neat fashion too.. I'd like to revisit this though.

Firstly, I'd like to say that I'm still right. In some ways.

Text protocols are very, very easy to work with from the respects of debugging, writing code to use them, and getting up and running. They're also pretty easy to serialise just about anything with.

On the other hand, writing parsers for text protocols isn't a simplistic operation, especially when you need to take into account fully variable lengths and things like that, even if such characteristics are what make text protocols attractive in the first place...

Binary protocols also don't make things easy for themselves when you take endianness into account, which you inevitably must.. and you also must be very cautious to use fixed length types instead of wildly tossing integers around your application. But that's nothing unexpected.

In summary, it's more of a grey area than I'd have thought some years ago, but I guess that's like a lot of things in life - the more you know, the less sure you are about anything.

(But I still think emacs sucks.)