■2012-06-25
* [近況] Hachioji.pm #18 でInline::JSXというネタ
Hachipji.pm #18の参加報告です(他の方のレポートはHachiiojipm.orgからぜひご覧下さい)。先週の土曜は午前中ジオメディアサミット in G空間WAVE2012に行って来ました。すごい長い列が出来ていてこんなにメジャーな催しものなのかーと思ったらFINAL FANTASYのイベントの列で、あやうく気づかないで並ぶところでしたよ。現地でhachioji.pmのequinox79さんと懐かしいkokogikoさんにお会いできたので昼飯してからハッカソン&Hachioji.pmへ。
今回のLTのテーマは「JavaScript」ということで、私もJSについて大いに語ることにしました。NHKのJSの認識がこのようでしたので(補足資料)、NHKアニメヒロインであるイサミやさくらについて大いに語ろうかと思ったら47分ぐらいかかりそうなのでやめました。
さらに続いて最近話題になったJSX開発者の一人、gfx(Fuji Goro)さんが来てたので渾身のネタを披露したら静まり返ってしまって大失敗でした。あとおまけでInline::JSXというモジュールについて話ました。このモジュールを使えばPerlコードの中にJSXがかけるという優れものです。
use Inline 'JSX'; say Addition->add(1, 2); # => 3 say Addition->add('foo', 'bar'); # => foobar say Addition->add('foo', 2) # => error: type mismatch! __END__ __JSX__ class Addition { static function add(x:int, y:int) : int { return x + y; } static function add(x:string, y:string) : string { return x + y; } }
上記のようにPerlからJSXで定義されたクラスと関数を呼び出せてますね。引数の型も認識して数値と文字列で結果が異なります。型が正しくないとエラーになります。裏でPerlのコードを生成しているだけですが、ほとんどCPANモジュールのJEに頼ってます。今後の課題としてはjsxのライブラリ互換なクラスを用意することなどなど……。こちらに資料の抜粋。ソースはgithubにあります。
次回7/28は高尾山の山頂でLTしてビアガーデンで飲みまくるTakao.mtです! ぜひご参加ください!