![]()
YAPC::Europe 2008 (2日目) 基調講演『A.B.C.D.E.F.G.』
川崎です。YAPC::Europe 2008 のレポート続き。
の2日目 Damian 先生のキーノート(基調講演)は Damian Conway さん。
相変わらずトークがうまくて面白い!
今回は"The problem with context" がテーマ。
A.B.C.D.E.F.G. というタイトルが付けられていました。

Perl には、もともと Java のような厳格なメソッドのプロトタイプ宣言がない代わりに
メソッド実行時に呼び出し元のコンテキストをダイナミックに判別することが可能。
通常は、wantarray でスカラーコンテキストか配列コンテキストか(つまり呼び出し元が
返り値を複数求めているのか単数で十分か)を判別するくらいしか使わないけど、
Damian 先生謹製の Contextual::Return モジュールを使うと、もっと高度な判別を
手軽に利用できるようになる。
http://search.cpan.org/dist/Contextual-Return/lib/Contextual/Return.pm#DESCRIPTION
Contextual::Return はまだ使ったことがないモジュールですが、なんだか不思議な動作。
かなり強力で、うまく使うことができれば、とってもマジックなプログラムが書けそう。

今回のタイトル『A.B.C.D.E.F.G.』というのは、
Another.Bloody.Class.Declaration/Encapsulation.Framework.Goddammit!
という意味でした。w
| Constructor | Contextual subroutine |
| Object | Contextual return value |
| Destructor | CLEANUP |
| Methods | METHOD |
| Object attributes | Lexical variables |
| Class attributes | State variables |
| Inheritance | DEFAULT or OBJREF |
| Delegation | DEFAULT or OBJREF |
| Class meta-object | LVALUE |
| Method interpolation | SCALARREF and ARRAYREF |
また、Contextual::Return を活用すると、Moose を使うよりも短いコード行数で
クラス定義が記述できる、とのこと。継承クラスが多数あるときに Moose は冗長?
Damian 先生も、流行の Moose に対抗心丸出しなのか!?
と思って後で聞いてみたら、それは冗談で、実際には、Moose よりも何倍も動作が
遅くなってしまうので、実用にはならないとのこと。(笑)
Damian 先生に続けて、その次のセッションは、川崎の
DOM manipulation by Gainer/Wiimote over HTTP
でした。
Damian 先生を前座にするとは!(←違います)
川崎のトークについて、詳しくは こちらのブログ にまとめました。
