データフォーマットはテキストであるべきか、バイナリであるべきか

あたりの議論は正直よくわかんないけど、以下、駄文。

データフォーマットとしてバイナリを推す派 vs. テキスト派の対立ってのは、別に最近始まったことじゃないわけで。この問題について自分が一番印象に残っているのは、

The Montagues and the Capulets (A shorter history of contending philosophies)

というスライド。著者の Larmouth 教授は ASN.1 関係の人なので、バイナリよりの視点になっているかもというのと、あと XML Schema とかそのへんの進捗は入ってない古いスライドなのかなぁ、とも思いますが、でも両派の戦いをロミオとジュリエットに例えたり、「石器時代には〜」とか書いていたりして、おもしろい。

いずれにせよ、バイナリベースのフォーマットだろうがテキストベースのフォーマットだろうが、表現できる範囲に差はないわけであり。

じゃあ何が違うかというと、エンコードされたデータ内に、メタ情報がどれだけ内包されているか、って点だけなんじゃないのか、と。何が言いたいかというと、例えば 1.3.6.1.4.1.4203 という OID よりも html:table というタグのほうがアフォーダンスが高いよねというか、自己説明的だよねというか。

どうでもよくなってきたけど、上のスライドは簡潔にまとまっていておもしろいかもよというのと、あとは、構造定義とか検証ツールとかそういうところも含めて、データフォーマットは設計すべきだよね、といったあたりでしょうか。


個人的には、データ構造の定義がはっきりしていれば、テキストとしてエンコードされていようが、バイナリとしてエンコードされていようが、どちらでもかまいません。あと、パーサを手書きするのは止めるべき。