I remember someone telling me at a conference that they write all program types (where possible) in Protocol Buffers, since this guarantees that there's a reasonably efficient way of serializing and deserializing anything that they need to in basically any language/platform that they could realistically write software in.

I don't know if I would go that far, but I kind of find the idea interesting; if everything can be encoded and decoded identically, then the choice of language stops mattering so much.