第2回は、やや上級者向けのセッションが用意されているハッカートラックについて紹介します。
ハッカートラックの位置付け
今回はハッカートラックの見所を紹介させていただきます。ハッカートラックと銘々はしましたが、このトラックはハッカーでないと理解ができない、というわけではありません。応募いただいたセッションの中から
- (1)Perl以外の技術の知識が必要
- (2)Perlの中でも多少上級者向け
のどちらかに該当する場合はこのトラックに入れるようにしてみました。製品紹介的なセッションに関しては次回以降に紹介予定の一般トラックで取り上げています。
多彩な見どころ
昨年のYAPC::Asiaでは最新オブジェクトフレームワークであるMooseが大流行し、日本のPerl界にもMoose旋風が起こりましたが、今年はそのような流行物ではなく、さまざまな分野の深いお話が聞けそうです。
気になるセッションにはぜひチェックを!
なお気になるセッションを見つけた方はYAPC::Asia Tokyo 2009サイトにログインした後に各セッションのページ下部にある「add to personal schedule」の横の星マークをクリックしてそのセッションを見る予定であることを記録してください。講演者のモチベーションもぐっとあがりますのでぜひ登録を!
AnyEvent、Coroなどの非同期プログラミングフレームワーク
今回のYAPCでは、数個のセッションがAnyEvent、Coroと言った非同期プログラミングフレームワークを取り上げます。AnyEventやCoroをうまく使うとI/Oなどのブロックする処理を待つ間に他の事を行うなどして高速に処理する事ができるため、使いどころを理解して導入すると大変効果的になります。
AnyEventやCoroの使い方については宮川達彦氏が「Event Programming fun with AnyEvent and Coro」で解説をしてくれます。このフレームワークを実際に適用したアプリケーションの例に関してはJohn Beppu氏が「Stardust, a Simple COMET Server」にてCOMETサーバの実装について語ります(デモ有り)。
非同期プログラミングに関するセッションは別トラックの「Asynchronous Database Queries with Perl」も注目です。
Perl内部の挙動
Perl言語自体はCで書かれており、このつなぎをXSというマクロ言語で実装しています。そこからまたCで書かれたライブラリなどとつなぎこんだり、Perlから呼び出した関数を完全にCだけで実装するようなことも可能です。この際Perlの世界で扱われるSV変数をうまく扱えると強力な武器となりうるのですが、その際にはPerlの世界からは滅多に直接触れることのないMAGICという構造体をうまく使うのがポイントです。
「XS書きのためのPerl MAGIC入門」では昨今「XSの人」として認識されつつある藤吾郎氏がMAGICについて解説していただける予定です。PerlからCを使う必要のあるかたは要チェック!
Perl内部関連ではJose Castro(cog)氏による「How regular expressions work internally」も必見です。Perlの正規表現がどのように動作するのかの内部を解説していただきます。
バイナリファン向けセッション
言わずとしれた超有名弁士竹迫氏は今年も健在です。とくに「all your base32 are belong to us」セッションは非常にわかりやすい概要文ですので興味のある方は一度ご確認ください。その他にもアセンブリをPerlから書く「Inline::x86 JIT Assembler」のセッションもバイナリファン必見です。
明日のPerl
Perlの最大の特徴の1つは言語仕様の変更も含めPerl自ら自身を進化させることができる事かもしれません。その柔軟性を生かし、Perl6の登場が待たれる中Perl5自体に「明日の世界」のアイデアを組み込み始める動きが少しずつ台頭しつつあります。たとえばPerl6で導入される予定の多重ディスパッチをPerl5で可能にするようなモジュールも開発されつつあります。
「Tomorrow.pm」ではPerlの「明日の世界」をPerl5で可能にする開発の多くに関わっている若きプログラマFlorian Ragwitz氏がこれらの技術の解説をしてくれます。
トラックは別ですが、明日の世界といえばもちろんPerl6本家のセッションもあります。「Solved in Perl6」はPerl6を知らない人でも大丈夫!Perl6ではどのような表現が可能なのかを実際に開発を行っているJonathan Worthington氏が解説してくれます。Florian Ragwitz氏がのセッションと合わせて見てみるとよりよいかもしれません。
Moose関連
今年の流行ではないかもしれませんが、Mooseは健在どころかあちこちのアプリケーションで顔を出し始めています。そろそろMooseを使ったことがあるという方も増えてきたのではないでしょうか。Mooseの最大の特徴の1つがRoleという概念ですが、これにC++のテンプレートに似た概念を足すと「Parameterized Roles」ができます。これはRoleを適用時に引数を与え、その値に特化したRoleを適用してしまうというものです。Moose開発に深く関わっているShawn Moore(Sartak)氏が解説してくれます。
今回来日する講演者の中でMooseといえばもう1人Yuval Kogman(nothingmuch)氏がいます。Shawn Moore氏とともにMoose開発を牽引する彼には今回「記憶」でMooseを用いたオブジェクトグラフストレージ“KiokuDB”について語っていただきます。正直なところ筆者もまだ使ったことがない技術なのですが、オブジェクトを保存するだけでなくオブジェクトに対する検索なども可能なようです。すでになんらかのプロジェクトで使用しているとの情報もあり、期待しています。
他にも見どころ満載!
その他にもまだまださまざまなセッションがありますが、実は筆者も内容をおぼろげにしかわかっていなかったりしてうまく紹介できないセッションもいくつかあるので当日実際に見るのを楽しみにしています:
個人的には「OpenGL Programming with Perl」と「Perlbalで非同期処理するプラグインを各方法」が気になっているので合間を見て様子を見に行こうかと考えています。
皆様も「まだわからないから…」と尻込みせずに、是非いろんなセッションに顔を出して見てください。すぐに理解ができなくても、ハッカー達の高度な技術をかいま見る事は良い刺激になること請け合いです!
チケット追加販売決定!
なお、本日(8/21)よりチケットの追加販売を行いますので、チケットをまだ購入できてない方は是非サイトより参加登録およびチケット購入を行ってください!