tokuhirom's Blog

設定ファイルは relaxed JSON でいいんじゃないかとおもった話

JSON.pm の relaxed モードについて

Perl5 の JSON.pm/JSON::XS では relaxed JSON というものがサポートされている。これは JSON 仕様をゆるくしたもので、 shell style のコメント(# 以後がコメントとなる)のサポートと、ケツコンマのサポートが含まれている。 JSON が設定ファイルとしてつかいづらいといわれる所以はたいがいコメントがつかえないことなので、まあこれなら許容範囲かな、と。mobirc の設定ファイルもこれにしてみました。

JSON の場合は、JS がわかる人なら手でかけるのと、まあわからなくても覚えることがすくないし、覚えても損がない感じがイカス!とおもいました。

他の選択肢

その他の選択肢としては ini や yaml が考えられます。

ini

ini は仕様が明確にきまっていない(ですよね?)のと、ネストした構造をあつかえないのが難点です。

YAML

yaml は version ちがうとハマる問題があったりして混沌としてるのであまりつかいたくない。現状だとほぼ XS 必須なのも難点。yaml は言語間の可搬性があるつもりだけど、結局対応している YAML の vesrion がちがかったりしてうまくよめなかったりしてあんま意味ない。また、手でかかせるフォーマットとしては、インデント必須なのであつかいづらいという問題もある。エンジニアならともかく、非エンジニアにかかせるものとしてはちょっとつかいづらい。また hash などの記法をおぼえるのが面倒。

ウェブアプリケーションの設定ファイルについて

もちろん、ウェブアプリケーションの設定ファイルなどの場合には .pl を do する方針でいいとおもいます。