OOPSLA併設のDynamic Language Symposium

DLSも伝統になりつつあるのか、200人くらいは集めていただろうか。

最初はIanによる「Ianのやつ」の話。ストーリーラインはいつもとちょっと違って、dynamic languageとは何か、ということを、言語に関するsyntax, semantics, implementation, runtime, pragraticsのそれぞれのどこが動的に変更できるのか、という視点から説明。あとWikipediaには「使いやすい」ということがdynamic languageの重要な要素であるように書かれているということ。

徐々に実際の話に移って行って、オブジェクトはvtableを持つという一点のみによって定義されており、そのvtableもオブジェクトであること、vtableは、lookup:, methodAt:put:、intern: allocate:だけを理解するオブジェクトであることと、そのlookup:のチェインは一応不動点があってとまるけれども、その不動点のlookup:も動的に書き換えられることなど。

KelsayのPre-SchemeやTeslerのLISP-70にも似たアイディアがあった。Birmanの1970年のバックトラックつきパーズ、そして(この日記に何度も出ている)1962年のMeta-IIのアイディアを多く取り入れているとともに、TeXのように、入力ストリームの解釈法をダイナミックに変えるというアイディアも使っている。

というわけでデモをおりまぜつつ発表。聴衆のレベルも高いので、いつになくみな良く理解していたようだ。

次は、Armin RigoによるPyPyの発表。うーむ、としか言いようがないな。単純さを志向しているといいつつ、実際には難しいやり方をしているとしか思えん。David Ungarの正しくも厳しい質問として「今まで何人月使ってきたのか、および一点だけ一番良いアイディアだと思っているところはどこか」というものがあった。5人のフルタイムで2年以上やってこれはないでしょう。

Christopher MuellerによるHigh-Performanceもの。基本的にはCPU命令をほんのちょっと抽象化したPythonの関数をプログラマに見せて、Pythonでハイパフォーマンスものをやろうというもの。IanのVPU(のあるべき姿)にもちょっとにているわけではある。

Sam Tobin-Hochstadtによる、動的型言語と静的型言語の間をつなぐためのPLTScheme用型アノテーション。需要はともかく、やりたいことはわかる。

昼飯でちょっと遅れたが、今日一番面白かったのはAudrey Tangの発表。彼女は自分のやっていることが良くわかっている。今日の会議は、Philip Wadlerが静的型付けの言語派からきていたこともあり、David UngarやMatthias FelleisenやPhilip Wadlerなどが、講演者そっちのけで言語論争をしたりしていて、まあ一面としては面白いが、あまり実りのあるような議論にはなっていなかった。が、Audreyは、彼らからの質問も、びしっと自分の言葉で完璧にまとめて理解して、Perl 6利点と欠点と自分の考えをしっかりと言って、基本的にうるさ方をだまらせていたのがすごかった(彼女は背も高かった)。今日の一番感心したところである。Philipが、「遅延評価は、副作用があるとややこしくなってたいてい一番評価してほしくないときに式が評価される」と言って受けをとっていたが、Audreyの説明としては、Perl6には遅延コンストラクトはあるけど、遅延評価関数はない。遅延評価が役に立つのはもともとコンストラクトだけであるという話がある(ソース失念)と答えていたな。

その後の発表に対してはやや聞く元気を失った面もあるが、HopとTransactional Memoryの話などがあり、最後はAviによるDabbleDBの発表。late-binding式の発表が上手であった。しっかり作られていないワークシートのデータに型を与えたりして、データの情報の質を上げるという作業を、エンドユーザーができるWeb上のインターフェイスなわけであるが、Davidは「Smalltalkerとして、型を与えることによる効果についてどう思うのか」という質問があった。それでまた講演者そっちのけで話(というか言い合い)がはじまり(Mattiasなどはもう自分の演説上のように振舞っていたしな)、Gregor Kiczalesも参戦したりしていたが、新たな知見が得られるような場外乱闘ではなかった気もする。

というわけで、Audreyを目の前で見ることができたのと、Ianの話がばっちり受けていたのが大きな収穫の一日だった。Göranにはじめて会い、Lexにも久しぶりに会い、Robertにも久しぶりに会い、その他大勢のSqueakerと話をした日でもあった。