Я бы сказал, что ProtocolBuffers, Thrift или Hessian довольно похожи в том, что касается их двоичных форматов - там, где они обеспечивают поддержку межязыковой сериализации. Присущая им сериализация может иметь небольшие различия в производительности (компромиссы между размером и пространством), но это не самое главное. ProtocolBuffers, безусловно, является хорошо работающим форматом, определенным IDL, который имеет функции для расширяемости, которые делают его привлекательным.
ОДНАКО использование «по проводам» в вопросе подразумевает использование библиотеки связи. Здесь Google предоставил определение интерфейса для protobuf RPC, что эквивалентно созданию спецификации, в которой все детали реализации оставлены на усмотрение разработчика. Это прискорбно, потому что это означает, что де-факто НИКАКОЙ межъязыковой реализации нет - если только вы не можете найти реализацию на разных языках, вероятно, упомянутую здесь http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns. Я видел некоторые реализации RPC, которые поддерживают java и c, или c и c ++ или python, c и т. д., но здесь вам просто нужно найти библиотеку, которая удовлетворяет вашим конкретным требованиям и оценить, иначе вы, вероятно, будете разочарованы. (По крайней мере, я был достаточно разочарован написанием protobuf-rpc-pro)
Kyro - это формат сериализации, подобный protobuf, но только для Java. Kyro / Net является реализацией RPC только для Java, использующей сообщения Kryo. Так что это не лучший выбор для общения между языками.
Сегодня может показаться, что ICE http://www.zeroc.com/, и Thrift, которые предоставляют реализацию RPC из коробки, являются лучшими реализациями RPC на нескольких языках.