OOPSLA

20周年ということでいろいろやっている今年である。過去のOOPSLAからのスナップショット写真がスライドショーとして表示されていた。2003年の俺の(Practitioner Reportだけど)発表風景が流れてびっくりしてしまった。

Ralphによる開会の挨拶。登録した人は1070人。USAは650人、Canadaは63人、Swedenは53人。Germany 41, UK 33, Norway 28, Denmark 26ときて、日本は18人。日本には俺は入っていないがな。北欧恐るべし。

キーノートはRobert Hassという詩人。Richard Gabrielの詩の先生、ということのようである。"Creativity"という題で、Dickensが連載小説という分野を開いたが、1830年代に、ちょうど乗合馬車が消えうせる時代にも乗って、そのちょっと前の良い時代を書く、というスタイルがアピールする波にも乗った。

道具を作るとか、織物をするとか、絵を描くとか物語を作るとか、という技術が生まれたがそれらは後の世代は練習した。練習で学ぶのは、技術の保存とそこからの発明、という二つの意味がある。叙事詩を口承するための韻は記憶のためである。人間は、パターンを見つけるのがうまい。

創造性の鍵が、安全(security, safety)と自由(freedom)の対立である、というテーマが繰り返し語られた。子供が祖父である彼から逃げて、ちょっと逃げると振り向いて、まだおじいさんがみてくれているのを確かめて、にかーっと笑う。

遠方からの帰還のいろいろな別のパターンの話がオディッセイア以前にもいろいろあったようだが、オディッセイアの話にまとめられたようである。オディッセイアに出てくるサイレンの唄の話は、おそらくは危険な浅瀬がある海域の存在が元になっていたと思われる。船員皆に耳栓をさせて、自分だけ耳栓をしないでマストに体をくくりつけて歌声を聴く、というのも発明であろう。

Piaget、Bruner、Kestlerなどの聴きなれた名前も出てきた。Kestlerは発明の要素は個人、領域、そして場所という3要素からなると言った。

Domainではそこで適用されるルールがどのくらいしっかり決まっているか、ということが重要である。Darwinも、神が与えた動物の分類がある、というルールが緩みつつあるときに仕事をした、という運もあった。

Native Americanにインタビューをしたとき、世界の始まりはどうなっていたのか、ということを聞いたら、「まずコヨーテがいて、おしっこをして住んでいた人を押し流した」と答えた。「ちょっと待って、じゃあコヨーテは始まりじゃないのでは?」と聞いたら、「うーん、子供のころからおかしいと思ってはいたんだよね」と答える。そのnative americanが父親にその事を聞くと、父親も「うーん、子供のときからおかしいと思っていたんだよね」という。物語をそのまま時代に伝えるのは、"safety"を守る、という心の働きである。

South Dakotaのバーに行って、お酒のコースターを見てみると、「North Dakodaの人が楽しみにしているのはどんなことでしょう?(答えは裏を見てね)」と書いてある。そこで裏返してみると、「South Dakodaの人が楽しみにしているのはどんなことでしょう?(答えは裏を見てね)」と書いてあった。

アルキメデスのユーリカのエピソードは、追い詰められて煮詰まって、お風呂に入って違うことをしたときに浮かんだ。もし、最初から王冠を溶かして体積を測ってよければ、この発明はなかった。創造性のためには、制限が必要である。

事件は話の最後に起こったわけだが、最後の締めとしてミケランジェロの詩を引用しようとしたのに、その詩が書かれた紙が見つからない。「これがみつからないと相当がっかりするよ」と言って探して見つからず、舞台の下にあるブリーフケースを当たっても見つからず、結局「おおむねこういうことを言っていたんだ」と説明して終わってしまった。おもしろいハプニング。

話の内容は(私はもちろんバイアスかかっているけど)、Alanが話すことに良く似ているともいえる。Robert Hassであった。

Andrew Blackの質問が一番面白かったかな。ギリシャ都市国家の市民のように、戦争状態のときによりいっそう想像性が発揮されることもあるので、safetyとfreedomだけが創造性の鍵ではないのではないか、というものだった。

キーノートの後は、併設のDynamic Language Symposiumに移動。Pascal Costanzaの"Layered Method"。スレッドごとに、そのスレッドから見たオブジェクトにエクステンションが付いているように見えるようにする。

Ambient-Oriented Programming。もうちょっと一般化したフレームワークにできそうだ。

Marcel WeiherのHigher Order Messaging。以前メールのやり取りをしたことがあったが、賢そうだしフレンドリーなやつであった。ちょっと質問してみたが、答えの予想が付くことを聞いてしまったわけではある。

午後1は、Gerald Jay Sussmanのキーノートスピーチ。初めて聞いた。プログラミングは、自己表現である、という話から。世界を記述したり、世界のモデルを記述したり、その美を記述したり、そして人の感情を呼び起こすこともできる。Windowsを使っていると泣きたくなることもあるが、そういうことではない。

幾何学は、エジプトでナイル川の氾濫が毎年起こって、その後を測量するところから始まった。今の子供は、四角形で構成した構造は三角形で構成した構造よりも弱いことを知っているが、5000年の間に子供でも知っているようになったわけである。

Schemeで書かれたプログラムの例がいくつか出てきた。SICPに入っている(微かに記憶にある)関数がぼちぼち出てくる。足し算の+をオーバーライドできるところに美がある。リスクをとらないと美はない。

散文的なものと、詩とは違いがある。Maxwellの電磁気方程式は詩である。電場と磁場がお互いに絡みながら動いているさまを記述している。知識には、宣言的なものと操作的なものがある。平方根の定義とnewton法による近似のような。

Schemeのevalとapplyが呼び出しあう形で書かれたメタ・サキューラー・インタープリターはコンピュータ言語のMaxwell方程式である。

Mindstormには、"プログラミングは正確で定式化されているけど、厳格ではない」という表現がある。

電気回路の「読み方」の実演。

話をしろといわれると、何でも50分が一時間という単位で話してしまうので、ついつい速く話してしまう。

scientistはもって生まれた才能で仕事すると思う、engineerは教えられるskillで仕事すると思う。教え方が違う。

数学が苦手な子供が多いのは、記法にも問題がある。cos^{2}(x)がcos(x)*cos(x)の時に、cos^{-1}(x)とはいったいどういう意味なのか。数学者は頭の中で考えて、最後のところだけを書くので余り問題はないが、教育的にはよろしくない。

ラグランジュ方程式も、普通に教科書に載っている式では、どの変数を微分しているのかわからないので不完全なはずである。

MITのJack Wisdomは、Swimming Space-Timeというレポートを書いた。重力があって歪んだ空間上では、手を伸ばし、ひねって引き寄せ、また元に戻すと、トータルでモーメントが得られるので、他からの力がなくても移動できる。

1980年のPCショーで、9歳くらいの女の子がBASICでぱたぱたやっていて、「パパ、この言語は再帰的定義ができるのよ」と父に教えていた。コンピュータをプログラムする、という形で考える世代が来るはずである。

コンピュータはバイオリンのようなものである。訓練して使えるようになるものである。

などなど。初めて聞いた。科学者であり教育者である、という姿がにじみ出ている話しっぷりだった。

DLSではLispの宣伝をしていたが、かなり間抜け。その後で発表されたLexのChuckはかなりすばらしかった。オブジェクト生成のコールサイトによって型推論で使うクラスを細分化する。DCPA。

Convergeという、動的型言語でマクロシステムを入れた言語も面白かった。

最後は、Brian Footeの漫談。面白い。

夜は、OOPSLA20周年を振り返って、古株たちが台にあがって思い出話をする。Danも後から上がっていった。Rebecca Wirfs-Brockが、カラーのSmalltalkを作ってDanに見せて、Danが"cool"と言ってくれたのが自分を誇りに思った瞬間だったと言っていた。古株たちは当然SmalltalkerたちばかりなのでSmalltalkの話が多かったが、聴衆の若い人はそのインパクトがどのくらい判っていたのだろうか。