Protocol Buffers

先日、デブサミGoogleのセッションを聞いてきました。
非常に楽しく聞いていたのですが、そこで気になったものがいくつかあったので、書いておきます。

Protcol Buffers

なんかGoogle内部で使っている多言語間で通信を行う際の通信プロトコルなのでしょうか?
メッセージだけでなく、実際の通信の規約も決めているとは思うのですが、非常に気になってしまいました。

最近思うのですが、通信はXMLでってことがよくあります。
でも、これっておかしい?とまではいいませんが、本当にやりたいのは適切なデータを簡単に送りたい、処理を実行したいってだけなんですよね。なのに、フォーマットをきめて、そのフォーマットはあーでもない、こーでもないって言いいながらね議論するわけですよ。
通信したいだけなのにね。
ま、SOAPはそのあたりをよきに計らってくれるんでしょうが、初めてSOAP使うときは、どういったフォーマットなのかを細かく読んでしまいますよね。

できれば、JavaとかC#とか、RubyとかPerlとかが、ひとつの規約を作ってそれの実装をひとつにさえすれば、結構広まったりするんじゃないでしょうかね。1言語1つの実装だけです。品質も上がるし、そうなるとメッセージのフォーマットを気にする人はごく小数になるだろうしね。

ま、いろいろ妄想を書き立てられながら、Protocol Buffersがどんなものなのか見てみたいものです。
まずは、これが一部紹介されている論文:Interpreting the Data: Parallel Analysis with Sawzallでも見てみます。

ってこの論文書いた人って、『プログラミング作法』書いた人?