Just catching up on my reading for the last few weeks and I see that Google has open-sourced something called Protocol Buffers. A bit of a yawn really, but interesting from the perspective of adding a new animal into that endless zoo of rpc protocols. Actually, Protocol Buffers are not quite rpc, but actually very reminiscient of XDR which was invented about 12 years ago.
Mark Pilgrim gives a good overview and the comments are interesting to peruse.
Ted Neward writes a really nice discussion of Protocol Buffers (and binary representation in general) versus XML.
Meanwhile, Steve Vinoski begs Google to back off from the “gee we can do rpc with this…” perspective.
Ultimately I ask the question “why do you want yet another binary encoding format”? I think Ted Neward sums it up well:
In the end, if you want an endpoint that is loosely coupled and offers the maximum flexibility, stick with XML, either wrapped in a SOAP envelope or in a RESTful envelope as dictated by the underlying transport (which means HTTP, since REST over anything else has never really been defined clearly by the Restafarians). If you need a binary format, then Protocol Buffers are certainly one answer… but so is ICE, or even CORBA (though this is fast losing its appeal thanks to the slow decline of the players in this space). Don’t lose sight of the technical advantages or disadvantages of each of those solutions just because something has the Google name on it.