OOPSLA

Mary Beth Rossonのキーノート。VL/HCCでの話からわかる内容ではある。Andy KoのWhylineはチェックする必要ありかも。StageCastで老人と子供達がチームになって遊ぶ、というのは面白い反面どうかなあとも思う。

テクニカルセッション。Alexandre BergelのClassbox/J。SqueakのClassboxをAWTとSwingに適用した、という言い方はfairなのかどうか。メソッドの選択をするためにスタックフレームを見なくてはいけないのか。

Clasages。inheritanceとobserveとcompositionを半分くらい統合したクラスのインターフェイスを作る。使えるかもしれないが、Whole Partのcomosition関係があって、外からは内部が完全に見えなくなっている、というとき、レンダリングなどはどうする、という主張なのかは良く判らず。observerは外部情報だけでは描画はできないからね。

Javari。Reference Immutability。内部と外部の再帰的な性質(外部仕様も、一段ラップしたオブジェクトから見れば外部も内部だ)に混乱している私であった。

お昼はMITの人々とフードコートで。Gerald Jay Sussmanと一緒に歩いていて机も確保したのに、いつの間にか彼がいなくなってしまった。惜しい。

Fine-Grained Interoperability。SchemeJavaの相互変換。Mirrorという仕組みを使ってやるのだが、労力の削減になるのかどうか良く判らない。
some-to-some messageとか
Pluggable AOP。もうすごいことになっている。

Refactoring Support。便利そう。

David Reedのキーノート。ある程度期待していたのだが、かなりまずい発表だった。ステレオタイプ的な老MIT教授そのもの、という感じでジョークなし、自分の知っていることを聴衆の理解レベルに関わらず話す、という感じの発表。そもそもCroquetが共有環境で、計算が複数ホストで同一性を保ったまま進む、という基礎の部分の説明もほとんどなし。Croquet Team向けのような説明を何百人もの聴衆相手にしてしまったわけである。

Squeak Smalltalk BOF。ひっそりと。Martin McClureが組織してくれたのは良かったが、彼が自分自身のやつを1時間くらい見せたりしてちょっと変な感じ。毛玉のデモも10分くらいさせてもらったのであまり文句は言わないが。

夜のスペシャルイベントはSan Diego Zoo。"World Renowned"のSan Diego Zooだが、あしかショーを見て、ご飯を食べて、たくさんの蛇を見た夜でした。

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の話が多かったが、聴衆の若い人はそのインパクトがどのくらい判っていたのだろうか。

OOPSLA Croquet Workshop

OOPSLAに併設のCroquet Workshopに参加。Hedgehogと呼ばれている簡略化TeaTimeのアーキテクチャに関する説明。いろいろなことが判った気がする。Islandというプロテクションのドメインがあって、それらが複数のホスト上に複製されている。あるIslandの内側だけでは、"(self future: 100) turn: 25"みたいな記法で、future message(未来へのメッセージ)を送る。Islandの外側にメッセージを送るときは、"self future turn: 25"のように、何ミリ秒の未来に送るかは指定しないで送る。すると、Routerがタイムスタンプをつけて送る。というような話。Islandの中では、実時間については何も知らない。ただ、Routerからheartbeatとして送られてくるやつが時計を進めるので、それによって実時間との同期が取られる。

お昼は、AlexとAlexとLexと一緒に食事。Alessandro WarthとAlexandre BergelとAlexander Spoonである。型推論とかクラスの拡張とかという近い話をしているので、一緒に誘ってみると面白いかなあと思ったが、AlexとAlexはその後も夜までみっちり話したようである。

午後は、Mark (McCahill)がベクトル場と粒子のシミュレーションと、別の種類のUIナビゲーションをまず紹介。うさぎが頭だけ水面から出して陸地に向かって歩いたりして、まるでゴジラのようであった。次に、Google EarthのCTOであるMichael JonesがGoogle Earthのデモ。ぐりんぐりん回ってかっこよい。Michael JonesはDavid Smithの古い友人なので、わざわざ来てくれたようである。DavidがMichaelになにを言ったのかは知らないが、後で「あー、Danny (Hillis)のところにいるんだね」とMichaelに言われた、当たらずと言えども遠からじ。Gigapxlプロジェクトというやつの話もしていたな。5ギガピクセルのデジカメで写真を撮ってアーカイブしているという話。Google Earthアノテーションはいろいろとすごくて、シェークスピアの戯曲に出てきた場所すべてにアノテーションをつけている人がいるとか。

Howard (Sterns)のBrieのデモ。もうひといき。山宮さんによるTVML+Croquetとちびロボのデモ。Bob(だったけ?)が一匹だけ透明だったのがみそかもしれん。Rick (McGeer)によるCitrus Galleryのデモ。なぜか遅かった。実際のコンテンツ作成の部分がなく、いったい何のデモなんだ?と思う面もあり。3D Solveでやっている軍のプロジェクトのデモ。

実りあるワークショップだったといえよう。Ralph JohnsonやDavid UngerやGeorge BosworthやDan Ingallsなどなど古株たちもたくさん来ていた。田中さんも最後のほうに来てました。

夜はポスターセッションをかねたレセプション。Danから最近の様子について聞いたり、韓国からSqueakerたちと旧交を温めたり。YARVの笹田さんがポスターを発表していたのでたっぷり話を伺うことができた。Ruby使いの振りをして、ポスターに関して質問しに来た人に答えたりしてしまった。すみません。Ryan (Davis)も来て久々に挨拶。

千葉さん、新井さんとも久しぶりに御挨拶できました。江渡さんを山宮さんに紹介していただいたり。

最後は韓国Squeakerの人とRubyの人と話して、9時ごろ退出。面白い話ができました。

疑似科学

suikanさんのhttp://d.hatena.ne.jp/suikan/20051016/1129469336です。

「時間の無駄」というのはもちろん逆説的で、別のレベルではとても中毒性があるように面白くて読んでしまいますよね。おとといきのうは、mixiの「水は答えを知っている」コミュニティ(http://mixi.jp/view_community.pl?id=42238)や菊池誠さんの所(http://www.cp.cmc.osaka-u.ac.jp/~kikuchi/weblog/)などを相当読んでしまいました。仮に自分が人を説得する立場に立ったらどうやって話していけばよいのか、というシミュレーションをするのに最適でもあります。

昨日のエントリに書いた「物語は科学の振りをしてはいけない」という表現にそっくりの表現も書かれていてちょっとびっくりもしました。