Facebook: Thrift vs Google: Protocol Buffers

 最近Googleが公開したProtocol Buffersと似てて一年前FacebookがThriftを公開した。
噂だけど、Google内部で先にProtocol Buffersが流行って、その後Facebookに転職した人がいて、
それでThriftが誕生したという。
 ここであくまで個人的見た感想を述べてみようと。
(以下 T:Thrift P:Protocol Buffersと略す)
1、
T:沢山の言語をサポートしている:c++, java, python,ruby, csharp, haskell, ocmal, 
erlang, cocoa, php, squeakなどなど。
P:現在c++, java, pythonのみサポートする。
2、
T:簡易RPCフレームワークを提供している(実際簡易ではないけどね、block,nonblock等もあり)
P:シリアライズ機能に絞っている。
3、
T:マルチプロトコルをサポートしている。専用のTProtocol,TTransport等、JSONと連携可能。
P:専用のプロトコルのみ提供、IOは標準のストリームを使用している。デバッグのため、
Text_Format機能があり、こちらのほうはnonbinaryフォーマットのため、ほかのプロトコルと
連携可能かもしれない。
4、
T:いくつか言語のCモジュールも提供している(パフォーマンス?)
P:全てピュア言語で実現、速度速い
5、
T:まだWindowsで使用できない。(なぜ?Boostなどの化けもんあるしww)
「原文:The Thrift C++ runtime library does not currently work on Windows. 
This means that you’ll be able to compile ThriftIDL files to C++/Java/Python/etc., 
but you won’t be able to compile and run the generated C++ code under Windows.」
P:Windowsも利用可能、VSのプロジェクトファイルまで提供。
6、
T:重点的に言語依存しないRPCフレームワークの構造を提供している。
P:ストレージパフォーマンスで工夫し、言語記述が重点らしい。
結論:
パフォーマンス重視ならProtocol Buffersがオススメ。
機能重視ならThriftがオススメ。