汎用データフォーマットにたいする雑感

  • フォーマットの変更は、ユーザーに対して基本的に不利益をあたえる
    • バージョン情報が含まれているフォーマットならば問題はすくない
  • ユーザーはなにも考えたくないから汎用フォーマットをつかう
    • できるだけなにも考えたくないゆるふわプログラマーがほとんどなのです
  • YAML をみよ
    • バージョンの差異と、プラットフォームごとの実装の非互換によってわけわかめである
    • 初期の時点でまともに実装できている処理系がすくなかった
    • バージョン2を現在まともに処理できているのは libyaml ぐらいではないか?
      • これはフォーマットの複雑さによるところが大きい
    • 1のライブラリと2のライブラリ、ユーザーには見分けがつかない状況
      • YAML::XS が2 で YAML.pm が 1 とどうしてわかる?
  • 非互換や、ユーザーのプログラムがこわれる変更は、まあなしね。
  • Data::MessagePack2 とかがでたときに、たとえば AnyEvent::MPRPC とかそういう依存モジュールはどうしたもんかなー。MessagePack に依存してるモジュールはすべて2系統うごかすの? どうするのかなー。

なんか Twitter で msgpack 関連のおいきれてないので、なんとなくおもったことをかいておいた。

kazuho さんとか miyagawa さんとかが考えてくれてるし、gfx が実装してくれてるので、あまり議論には積極的に参加していません。