■2013-08-01
* Perl] CPANにあがってるJSON関連モジュール色々
JSON::XS とそれにまつわる歴史的な過去の話、まとめ。を読んで。昨日のお昼に某所でこの話題になって、Cpanel::JSON::XSやJSON::MaybeXSの話やらCPANにあがってるJSON関連のモジュールの話をしてました。せっかくだからモジュールの紹介をしてみようかと。
【追記】tokuhiromさんがツイートしてるように、今はJSONとJSON::XS/PPを使えば特に困ることはほとんどないと思います。
JSON::XS
後存知の通り、一番メジャーなXSモジュール。速い軽い。作者のリーマンさんが何かと話題になりますが、(割と)よい人です。あとjson_xsというコマンドツールがついてきて地味に便利。
JSON::PP
JSON::XSと*ほぼ*完全な互換性を持ったPurePerlなモジュール。遅い重い。作者のまかまかさんが夏コミにでるそうですよ? それはさておき、Perl 5.14から標準モジュールになったので最近のPerlをインストールすれば最初から使えるはず。あとjson_ppというコマンドツールがついてきて、地味に便利というわけではないけど、まあこれも最初から使えるという利点が。
JSON
最初にCPANに登録されたJSON関連モジュール。昔むかしは単体でdecode/encodeしてた。現在はJSON::XSがあればそちらを、なければJSON::PPを、それもなければ同梱のJSON::BackportPP(JSON::PPと同じもの)をバックエンドにして動作するAPIのラッパー。バージョン1.xから2.0になるときにJSON::PPを同梱してJSON::XSとAPIを揃えた。結果、色んな人から「いきなりAPIを変えるな!」とものすごく怒られた。
Cpanel::JSON::XS
tokuhiromさんのページで説明されているように、JSON::XSのテストが一時こけてたのに業を煮やして登場。JSON::XSからforkされた。ドキュメントでJSON関連のモジュールはたくさんあるけど、メンテナがちゃんとメンテしてないと書かれてます。すみません、すみません。特筆すべきはPerl 5.6でも動くという点。
JSON::MaybeXS
「JSONのサポートモジュールにCpanel::JSON::XSも入れてよ」といわれたのをほったらかしてたら登場した。Cpanel::JSON::XSかJSON::PPがバックエンドになる。
JSON::XS::VersionOneAndTwo
JSON::XSがバージョン2.00から2.01になるとき一部のAPIが変わった。のに怒った人たちがつくったラッパーモジュール。今使うことはないはず。
JSON::Tiny
Mojo::JSONから派生。PurePerlなモジュール。JSON::PPと違ってパース処理が正規表現なため高速。JSON::PPより2,3倍速いし、ファイルサイズも小さい。ただしオプションは少なめ。
JSON::DWIW
かなり昔からあるXSモジュール。使ったことないけど、色々できることが多そう。ここ数年アップデートされてない。
JSON::Parse
このモジュールの作者の方がJSON::XS/PPの文字列処理がおかしいというレビューをされたので、使い方が悪いのではと返事をした結果、自作された。decodeのみだけどXSモジュール。JSON::XS/PPとUNICODEの取り扱い方が違う。
JSON::Syck
YAML::Syckに同梱されてるXSモジュール。歴史は古いが、現在では代わりにJSON::XSを使うようドキュメントに書かれている。
JSON::Any
JSON, JSON::XS, JSON::Syck, JSON::DWIWのいずれかのラッパーとして機能する。各モジュールでメソッド名がバラバラだった時代(今でもバラバラだけど)に需要があった。最近JSON::PPとCpanel::JSON::XSにも対応。
だいたいこんな感じかしら。他にもJSONフォーマットを利用したモジュールがたくさんあるけど、ここではdecode/encode用のものということで。
■2013-08-07
* [近況] YAPC::Asia 2013で同人(非電源)ゲームのトーク&ブース出します
来月はいよいよエンジニアのお祭りYAPC::Asia Tokyo 2013ですね。チケットの販売は8月11日までだそうですので、参加予定の方はご注意を。
さて今年も性懲りもなく技術的なこと一切関係なしのトークに応募しました。仏の顔も三度までというので、さすがに今回は受からないかなと思ったのですが受かりました→地域PM紹介型ボードゲーム「PM(ぷむ)からの野望」の考案と実践 です。プレーヤーは地域PMになって会議室などを拠点にイベントを開催、参加者を増やし勢力を拡大させます。最終的には「三種の人気」を集めて武道館でライブ(コーディング)を行う…… という感じのゆるふわなゲームになったらいいかなと思います。ちなみにボードゲームじゃなくなる可能性大。もちろん、ちゃんと完成すればYAPCで頒布します。
ということで、今年はYAPC::Asiaにどんぞこ楽屋のブースが出ます! 頒布物はこれ以外にも夏コミで頒布するものや、あと前回の冬コミで少数頒布した「新春初笑いPerlすごろく」とかも再版できたらいいかなーと考えています。会場では実際に「屋台」で出ますので、お祭りらしさを少しでも盛り上げられればと。ぜひブースにお越しくださいませ!
■2013-08-08
* [近況] 夏コミ参加!
直前での告知ですが、C84の2日目(日曜日)東R15a「どんごこ楽屋」で参加します。頒布物は恒例の『Acme大全2013』。
CPANにあがっている479個のAcmeモジュールの紹介と、素晴らしい(?)初心者向けPerl入門の章がついています! えーと、去年の表紙だと買いづらい、会社に置きづらい、という声に応えて、すごぶる健全なものになっております。頒布価格は据え置きにしたかったのですが、370ページになってちょっと値上がりせざるを得ませんでした。ごめんなさい。その代わりにおまけをつけることにしました。
「はくめたいぜん」とお読みください。タイトルだけ思いついて「これだ!」って思ったのですが、中身はまだ考えていないというね…… なんとか当日には間に合わせますので! ここまで書いて、この絵だとまた手に取れない人が出ることに気がつきました……
■2013-08-21
* [近況] 夏コミ参加の報告
C84にサークル参加してきました。
おかげさまで『Acme大全2013』完売しました。ありがとうございます。前回述べた「おまけ小冊子」ですが結局『10日でおぼ えきるPerl』というものになりました(『白目大全』はあまりにあまりなのと内容が思いつかなかった)。こちらは急にPerlを覚えなければならなくなった主人公のダラ子が姉者にPerlを教わり10日でCPANオーサーになる……という話だったらよいのですけどもね! もう少し内容ちゃんとして電子書籍版出します。
今回結構誤字脱字が多かったので、正誤表を用意してあります。他にもたくさんpapixさんが見つけてくれました。ありがとうございます。「10日で……」の方もかなりたくさんあって、両方ともおいおい正誤表に反映していきますので。それにしても「どんぞこ楽屋」が「どんどこ楽屋」になってるのにはうけた!
あとYAPC::Asia 2013の宣伝も勝手連的にやりまして、興味を持つ方も結構いらっしゃったのですが、なにぶんチケット販売締切当日だったのが残念でした。
『Acme大全』(+『10日でおぼ えきるPerl』)はYAPC::Asia 2013でも頒布できればなあと思ってますので、見かけたらぜひ声かけてくださいね。また通販もやっていますのでどうぞよろしくお願いします。