JavaScript版Protocol Buffers

JavaScriptでバイナリファイルの中身にアクセスできた - k12uのアレ」って記事を見て、「したらProtocol BuffersだってJSで読めるんじゃね?」って思ったので作ってみた。

http://code.google.com/p/protobuf-js/

勢いに任せて一晩でやっただけの、まだ「時間かければきちんとしたのが作れることがわかった」レベル。ただこれ、ちゃんと完成させれば結構いいんじゃないかという気がする。

Protocol Buffers(以降PB)って要はオブジェクトを比較的小さなサイズにシリアライズして多言語間でもやり取りできますよって規格だと思うんだけど、ぶっちゃけ私みたいなヌルくWebプログラミングしてるだけの輩には使い道がない。実際、PBの記事をはてぶで目にしたのなんて登場直後だけっしょ?

WebアプリがXMLJSON同様にPBを普通に解釈するようになれば別だけど、仮にそうしたところでブラウザが解釈できないとMash upとか無理。クライアントをJavaC++で作るしかなかったらユーザー増えるわけないよね。で、ユーザーがいないとPBで値返すWebアプリなんて出て来るわけない。

そんな悪循環を、JS版PBは断ち切る可能性がある・・・かも。

PB登場直後にXMLとPBを比較したような文章をよく目にしたんだけど、その度に「なんでユースケースが全然違うものを比較してんだよ」って思ってた。でもJSがPBを解釈できるとなると真っ向からXMLにぶつかるチャンスがあると思う。

実際上もPB使う利点はあって、数値主体の大きなデータを送るならPBの方が圧倒的にデータサイズが小さくてすむ、はず。もちろんデータの解釈はブラウザ組み込みのXMLJSONの方が断然早いんだろうけど、Webで使うならネットワークの遅延が効いてPBの方が有利なことも多そう。

てことでこれ、私がやるよりGoogleの中の人が20%ルールとかでやっちゃえばいいと思うんだ。本気でやれば2-3週間でコアな部分は完成するっすよ。どのみち私は他に作りたいものがあるので最低一ヶ月は放置するし。

・・・あ、そっか。こういうのはPBのMLに流せばいいのか。でも英語でややこしいこと書くの大変だなぁ。