http://martinfowler.com/bliki/OOPSLA2004.html

私はここ10年間、OOPSLA に参加し続けている。 ここは私にとって、多くの友人たちと情報交換を行い、 彼らが最近何をやっているかを知り、 これからOOコミュニティがどこへ行こうとしているのかを感じるための 場所となっている。

カンファレンスが始まる前に、 私は出版10年目となるGoF本の再評価ワークショップに参加した。 GoF本はOO界にいる人間にとって必要不可欠な読み物だが、 現代風に改訂できる箇所が多分にある (残念ながら、GoFら自身の手によって改訂されることはないだろう)。

我々は様々な議論を行った。 中でも特筆すべきは「vote off the island」セッションだろう。 もう外した方がいいと思われるパターンに参加者が投票するのだ。

投票の結果、4つのパターンが締め出された。 Factory Method、Bridge、Flyweight、そしてInterpreterだ。 Factory Method は、何を意味するのかが分かりにくいためだ—— このパターンは(Factoryという)用語の一般的な用法とは異なる。 次点は Singleton と Chain of Responsibility だった。 この2つのパターンはキズだらけになりながら判定勝ちをおさめた。

この投票と議論は非常に楽しかった。 もちろん、代替案を考慮せずに このことについて言及するのは難しいことだろうと思う。 私は、友人たちの間で人気のなかった Singleton が辛勝したのには驚いた。 多くのひとは一般的でないパターンに投票したようだった。 その他のパターンにはおそらくそれなりの使用用途があるのだろう。 残念ながら、新しいパターンについては考える時間がなかった。

Eclipse のパーティーが日曜の夜に行われた(OTIやIBMからの伝統だ)。 しかし、部屋があまりに狭く、 蒸気ローラーの下で身体を平たくでもしないとなんともならないような状態だった。

オープニングキーノートは、Microsoft Research の Rick Rashid によるものだった。 これは、みなからの酷評を受けることになった。 研究所発のそこそこおもしろい話の時間が終わると、今度は製品紹介が始まり、典型的なツマらない製品デモになってしまったからだ。 いくつか設けたボックスに(聴衆が)招き入れられ、ボックスのサイズが調整され、グループに分けられたところで、私は部屋を出た(★)—— そしたら、友人たち何人かには、なんでもっと早く出なかったんだと怒られてしまったよ。 一番不快な思いをした人には、マイクロソフトの人間も含まれている。 彼らはこうした場に似つかわしくない製品発表であるという思いで、大変きまり悪そうにしていた。 この(私の文章の)追い討ちが無かったにしても、みんなのからかいの的になるのは辛いことだろう。

同僚のモックオブジェクトのセッションに参加して手伝いたいと思っていたが、 NoNoPoMo (Notes on Notes on Postmodern Programming) のセッションと かぶってしまい、計画が台無しになってしまった。 Robert Biddle と James Noble による最新の PoMo の話である。 私は2年前にオリジナル版 Notes on Post Modern Programming を聞いている。 これは、パフォーマンスアートの仮面を被った学術的考察だと思う。 今回も、楽しいパフォーマンスアートであったが、 ソフトウェア構築について我々がどのように考えているかという点まで考察されていた。 James が JAOO で「レゴの仮説」(訳注:ソフトウェアはレゴのように組み立て可能であるという仮説)について話していたのを見たことがあるが、 今回の話はそのテーマを補強するものであった。

まとめると、PoMoのポジションとは以下のようなものである。 プログラミングは近代(the modern age)へと成長した。 発展という大いなる物語を前提として、 よく似た小さな構造から大きな構造を構築し、 求心力ある一貫した図面を作るような時代である。 しかし、近代的の考えは、 人間発達における新しいフェーズの理論(ポストモダンと呼ばれる)によって 様々な個所で疑問視されている(特に建築や文学といった分野では)。 これは新たなテーマを想起させる。 大いなる物語の喪失と、雑多な構造の受け入れである。 PoMoプログラミングの考え方は、 この時代の趨勢が我々のプログラミングの捉え方に影響しているというものである—— それを意識してようがしていまいが関係なく。 例えば、有用だが雑多なシステム(例えば Perl)をどのように受け入れ始めているか、 ソフトウェアの部品を実際のソフトウェアシステムとどのように融合しているかなどからその一端が垣間見られる。 モダニストは、このようなシステムの「雑多さ」を嫌う。 しかし、PoMo はこの「雑多さ」を我々の世界に必要なものだと認識している。

Alan Kay による Turing Lecture は、 カンファレンスの中でもかなり人の入っていた講演だった。 噂では、これは新しいテーマでの講演になるということだった。 「新しいテーマでの講演は20年ぶり」 というジョークまで耳にした。 講演のテーマは、プログラミングを教える際の障害に気づく喜びの喪失について。 60年代の学生は、コンピュータを使ってできること/できないことを理解することは誰にもできないと教わった。 このことが、クリエイティヴなアイデアを爆発させたのだ。 これは sketchpad のビデオデモにうまくまとめられていた。 今のプログラミングは、 我々が過去に行ったことのルールを覚えるだけで、 境界線の向こうに突き抜けさせるような、そんな代物じゃなくなってしまった—— パターン作成者として私も同罪なわけだが。

Kay の講演の大半は SqueakCroquet についてだった。 Microsoft の人間が、これは今朝の Microsoft のデモの批判にちなんだ皮肉だと言っているのを耳にした。 両者の違いは(Squeak と Croquetがフリーであること以外に)、 話している内容を Kay がツール (Squeak, Croquet)を使って示した点だと思う。 ツールは、アートではなく「あなたが出来ること」の一例を表すためのものだ。 このツールにしろ競合製品にしろ、 ツールによってあなたはもっと遠くまで行けるのだ。 Brian Marick がこう表現していた。

"”Microsoft Research の世界では、我々は傍観者であり、消費者であり、誰かが作ってくれた経験への二次的な参加者に過ぎない。一方 Alan Kay のヴィジョンでは、我々は世界を変更する役を担っている。世界は我々に変更せよと欲している。

細かいことを言うようだが、ここで Microsoft をターゲットにしているのは、 彼らが最大手であるからに過ぎない——すべての産業はこの問題を抱えている。 Kay (ソフトウェア界の Orson Welles) が このような重要なポイントを抱えているのはこのためである。

Steve McConnell の講演で2日目が開けた。 彼は、名著『Code Complete』の1版と2版の10年間のギャップについて話した。 Brian Foote が「納得いくことばかり書いてある」とまとめた。 この10年間、暮れていく空の景色は変わっていないが、 産業の進歩は著しかったわけだな。

Steve とは後のパネル 「Software Development: Math & Science or Arts & Clafts?」 で同席した。 これは、ソフトウェア開発のメタファを再度吟味しようという試みであった。 こうした詮議は、OOPSLAの年中行事になりつつつある。 このところ私は、「良いメタファは死んだメタファだけだ(訳注:「良いインディアンは死んだインディアンだけだ(今生きているインディアンはみんな悪者だ)」のもじり。)」という見方に傾いている。 私は、ソフトウェアエンジニアリングのメタファについていつも通りの長広舌をふるい、 特に製造業のメタファに対しては、一発ぶっぱなしといた。

製造業への例えを攻撃しているのは、 ちょうどOOPSLAの参加者たちが Software Factories の本をおみやげにもらってたからである。 私は以前からこの動きに感づいており、本能的にアレルギー反応を示していた。 このメタファは「工業化する必要がある」と強調しているに過ぎない。 しかし、詳しく調べてみると、ここにも良いアイデアが埋もれていた。 DSL(ドメイン特化言語)との融合である。

木曜日のキーノートである Amazon の Web サービスの話を半分聞きそびれたが、 予想してたよりも遙かに良かった。 Amazon のサービスを使うと面白いことがたくさん出来る。 データを簡単にしかも自由に利用可能にすることで、 こんなにも楽しいことが出来る。Amazon には脱帽だな。 もちろん、これは純粋な利他主義ではない。Amazonブランド構築の助けとなっている。 長いことこういった記事のなかで Amazon にリンクを張っている。 本を参照するときはAmazonにリンクを張るのがデファクトになっているからだ。 それと、簡単だからっていうのもある—— Amazonのリファラスキームに参加しなくともよい(訳注:リンクを張るのに面倒な手続きがあるわけではない)。

2度目のパネルは、オフショア開発について。 ThoughtWorksでのバンガロール研究所の経験があるために招待された。 だが、オフショア開発を機能させるためのメカニズムについての質問はなく、 その代わり、モチベーションやオフショア開発の結果に質問が集中していた。 オフショア開発がUSAにもたらす恐怖をみなが感じていることは明らかだった—— ただ私は、誤った製造業のメタファを使っているのが恐怖の原因ではないか思っている。

最後に参加したパネルは「.NET vs Java 銃撃戦」—— だったが、国境でカナダ人に銃を没収されてしまった。 パネルディスカッションには QuestionTimePanel 形式を用いた。 より合理的な議論にするために有用な方法である。 私は議長に集中していたので、内容をあまり覚えていない。 なので、eweekのレポートがあって良かった。

Anders Hejlsberg が現在、C#について考えていることについて 2つのポイントを示した。それがズキュゥゥーンときた。 ひとつは、悪名高いオブジェクトとRDB間のインピーダンスミスマッチについて。 もうひとつは、静的型と動的型のメリットを合わせた型推論(type inference)への移行についてだ。

関連情報

"”すると、どうやらマイクロソフトのトップ・リサーチャー、リック・ラシドによる「Software Factories」のデモがあまりにも商業主義的な内容であったため、カンファレンス参加者の一部が怒って会場から立ち去ったというのが真相のようだ。


  • 修正しました。–[[kdmsnr]]
  • 2004-11-16 (火) 17:37:47 ‘’[[まつもと]]’’ : Brian MatricじゃなくてMarickです
  • 2004-11-15 (月) 13:14:35 ‘’[[holic]]’’ : ボックスのところは、途中で「混んできたので席を詰めてくれ」とやられたことを書いているのでしょうかね。リファラスキームは、Amazon のアフィリエイトサービスのことでしょう。URL にアフィリエイトのIDを埋め込んで、リンク元を特定するしかけですね。
  • ありがとうございます。ボックスのところだけよく分かりませんでしたので、再度★印をつけさせて頂きました。–[[kdmsnr]]
  • 2004-11-06 (土) 21:42:25 ‘’[[keis]]’’ : お疲れ様です。原文、意味がとりにくいですね。★印のところを二、三変えさせていただきましたが、さほど自信はありません。間違っていたらすみません。