YAPC::Asia 2007 感想

Perl のカンファレンスである、YAPC::Asia 2007 Tokyo に行ってきました。Ruby 好きなのになぜ? という気もしますが、Perl のカンファレンスを見に行きたかった理由は以下のようなものです(上の方が主要)。

  1. Perl 6 の話を聞きたい、もっと正確には、Audrey Tang さんの話を生で聞いてみたい。できれば、Haskell の話も出てきたらうれしい
  2. 言語や、アプリケーション寄りの話だけではなくて、インフラ寄りだったりサーバ管理、サービス監視の話だったり、幅が広い
  3. Perl のコミュニティの雰囲気を実際に感じてみたい
  4. 面白い試み、ライブラリが多い、参考になるものを吸収したい

実際に参加してみて、一番の感想は「Perl コミュニティスゴい!」というのが率直なところでした。多くのトークでエンターテイメント性が高いことに驚きました(内容の良さに加えて、ということです。念のため)。聴いている側の取り込み方とか、伝え方とか、遊び心とか。技術的な話の質に加えて、「楽しむ」「楽しませる」ということが、Perl というコミュニティの個性なんだなぁ。最初は参加目的は上で挙げた順序だったんですが、もうあっさりと逆転しちゃうような衝撃を受けました。

以下は、聴いたトークのメモ(一部)。

Emerson Mills: "Virtualization and Pachage Deployment with EC2"

Amazonウェブサービスの宣伝(?、エバンジェリストは宗教の香りがするので、、と言っていたような)をやっている Emerson さんのトーク
問題意識として、「色んなツールでインストールに苦労することがよく在る、再利用は良いことだけど、開発環境の複雑さを増加させてしまう」という所からスタート。解決策として、「仮想化を使えないか」「(ライブラリではなくて)環境を配布すれば良いのではないか」。そこで、EC2(Elastic Computing Cloud) の話をちょっと。EC2 は、Xen ベースで構成されていて、イメージの作成や登録が簡単にできる(このへんは Amazon のサイトに情報がある)よ。
QA の中で、「EC2 の使われ方は? どんなクールなものがある?」という質問があった、答えはこんなん。

あと、「いつベータがとれるのか?」については、「もっとスケール出来るようになればベータが外れる」とのことでした。

Naoya Ito: "Perl and UNIX Network Programming"

すでに色んな方が書いているみたいなので、印象に残ったのを一つだけ。

right design >> language advantage

Audrey Tang: "Perl 6 Today"

Pugs (Perl 6 の実装) の開発リーダーである、Audrey Tang さんのトーク。ぼくも去年の Haskellトークの資料を見て、ニワカ Haskell ファンになって、ふつうの Haskell を買った一人です。英語すごく聴きやすくて、資料の作りも綺麗で、やっぱ YAPC 来て良かったよ〜、と思わせていただいたトークでした。すでにスライドは公開されています。

Pugs: YAPC::Asia slides.
==== http://pugs.blogs.com/pugs/2007/04/yapcasia_slides.html

370枚のスライド(PDFでだけど)を流麗に、かつ含蓄深く語る Audrey さんのトークにごちゃごちゃ解説も付けられないので、個人的に印象に残った部分を、前半部から抜粋。

  • Perl 6 のコード: 20,000 を超えるテスト、仕様⇔テスト
  • Wiki的な開発スタイル: 10以上の言語、 30超のサブプロジェクト
  • pugscode.org のサーバ: IRC, Run, Dev, Invite, Smoke, Spec, Blog
  • 抽象化は → セクシー
  • 省略表現は → 自然に
  • 最高のコーディング → 無コーディング: CPAN
  • 語彙 >≠ 構文

多くの人で開発するスタイル、やりかたは仕事での開発プロジェクトにも参考になる部分が多く在るのではないかと思い、pugscode.org のサーバ群は活きた実例なので覗いたいです。最後の「語彙」を重要視するのはとても共感。
後半は、陰陽のマーク(二つ巴)かは始まり、言語設計の「右か左か」でした。まだ消化できていません。これから読み込む。特に読み込みたい部分抜粋。(リストのネスと2段目はふと思ったこと、練られてない)

[1, 1, 2, 3, 5] ?+? [1, 2, 3, 5, 8]; ?# === [2, 3, 5, 8, 13] 
    • どの程度、"Hyper" を一般にできるのか? ユーザ定義のイテレータでは? デフォルトで並列化にしたいもの、並列化したら危険なものの判断?

すばらしいプレゼンテーションでした!