OOPSLA 2004
2004年11月3日
私は10年以上OOPSLAに参加しています。OOPSLAは、多くの友人と近況を交換し、彼らが最近何をしているのかを知り、OOコミュニティがどこに向かっているのかを感じ取るための場となっています。
カンファレンス本番が始まる前に、出版から10年が経過したGoF本を再評価するワークショップに参加しました。この本はOO分野の誰にとっても今でも必読書ですが、現代化するためにできることがたくさんあります(残念ながら、GoF自身によって実現される可能性は低いようです)。
「今後どうなるか」というテーマを中心に、いくつかの議論を行いました。おそらく最も興味深い報告は、「島から追放する」ことを検討する練習でした。人々は、現在の形式では削除が必要だと感じるパターンに投票しました。
4つのパターンが追放されました。 Factory Method(その意味に関する混乱のため - このパターンは、この用語のより一般的な用法とは異なります)、Bridge、Flyweight、そしてInterpreterです。SingletonとChain of Responsibilityの2つのパターンは、意見が分かれました。
投票と議論は興味深いものでした。もちろん、代替案を見ずにこれを検討するのは難しいことです。Singletonが、私の友人たちの間では不人気になっていることを考えると、意見が分かれただけで済んだことに驚きました。他のほとんどのパターンは、人々がそれらが十分に一般的ではなく、他のパターンが代わりに取って代わるだろうと感じたために追放されました。残念ながら、新しいメンバーを検討する時間は ありませんでした。
Eclipseは日曜日の夜にパーティーを開きました(OTIとIBMの伝統を受け継いで)。しかし、部屋はあまりにも狭かったので、楽しむためには、まず蒸気ローラーの下で転がる必要がありました。
オープニング基調講演は、Microsoft ResearchのRick Rashid氏によるものでした。研究所からの mildly interesting な内容の後、製品発表に移行し、すぐに典型的な vapid な製品デモになってしまったため、広く批判されました。私は、ボックスのサイズ変更とグループ化を見せられた後、退席しました。もっと早く退席しなかったことで、何人かの友人に叱られました。最も不快だったのは、Microsoftの人々で、彼らは不適切な製品ピッチだったことに同意し、非常に恥ずかしがっていました。これに加えて、みんなのジョークの的になるのは、十分に大変なことだと思います。
なりたいと思っているサポーティブなエグゼクティブとして、同僚のモックオブジェクトに関するセッションに出席する予定でした。しかし、その計画は、Robert BiddleとJames Nobleによる最新のPoMo講演であるNoNoPoMo - Notes on Notes on Postmodern Programmingと時間が重なっていることに気づいたときに放棄されました。私は2年前に彼らの最初のポストモダン プログラミングに関するノートの講演を聞いて、通常はパフォーマンスアートを装った学術的な憶測として説明しています。このバージョンは、面白いパフォーマンスアートのスレッドを続けましたが、ソフトウェアの構築方法についての考え方との関連付けを続けました。JAOOでJamesがレゴ仮説に関する講演をしているのを見て、この講演はこのテーマの多くを発展させるのに役立ちました。
PoMoの立場を要約すると、プログラミングは近代まで成長してきました。近代は、進歩という壮大な物語と、より小さくても似た構造から大きな構造を構成して、統一的で首尾一貫した全体像を提供するという根本的な仮定を持っています。しかし、近代の概念は、ポストモダニズムと呼ばれる人間の開発における新しい段階の考えによって、多くの場所で(特に建築や文学で)疑問視されています。これは特に、壮大な物語の欠如と、乱雑な構造の受容という新しいテーマをもたらします。PoMoプログラミングの見解は、この根底にある流れが、意識的に気づいていなくても、プログラミングに対する私たちの考え方に影響を与えているということです。この側面の1つは、Perlなど、乱雑だが有用なシステム、あるいは実際のソフトウェアシステムでソフトウェア部品が統合される方法を受け入れ始めていることです。モダニストの観点からは、これらのシステムの乱雑さは嫌われますが、PoMoはそれらを私たちの世界の必要な特徴と考えています。
Alan Kayのチューリング賞講演は、多くの参加者を集めたカンファレンスのハイライトでした。特に話題になったのは、これが新しい講演になるということでした。冗談好きの人は、これはKayの20年ぶりの新しい講演だと冗談を言っていました。講演のテーマは、プログラミングを教える方法における発見の喜びの喪失でした。60年代、学生たちはコンピューターで何ができて何ができないのか誰も理解していないと教えられました。これは、スケッチパッドのビデオデモを見せることでうまく要約された創造的なアイデアの爆発につながりました。現在、プログラミングは、境界を押し広げることを奨励するのではなく、私たちがやってきたことについてのルールを学ぶことになっています。そして、パターンの著者として、私はこれについてほとんどの人よりも罪深いのです。
Kayの講演の多くは、SqueakとCroquetに関するものでした。何人かのMicrosoft社員が、これは朝のMicrosoftのデモに対する批判の後では皮肉なことだと言っているのを聞きました。(SqueakとCroquetが無料であること以外に)違いは、Kayがツールを使って彼が話していたアイデアを説明したことです。ツールは、最先端技術の表明ではなく、できることの種類の例でした。それらは、それらを使って、あるいはそれらと競争して、さらに先に進むことを奨励しました。Brian Marickが言ったように、「Microsoft Researchの世界では、私たちは観察者、消費者、他人が私たちのために構築した体験の二次的な参加者です。Alan Kayのビジョンでは、私たちは、それを変えるように積極的に求めている世界のアクターです。」ここで私が唯一 nitpick するのは、Microsoftを標的にしているのは、彼らが最大だからに過ぎないということです。業界全体がこの問題を反映しています。だからこそ、Kay(ソフトウェアのオーソン・ウェルズ)は、非常に重要なポイントを持っているのです。
Steve McConnellが2日目を開始しました。彼の講演は、彼の優れた著書Code Completeの初版と第2版の間の10年間のギャップに焦点を当てていました。Brian Footeはそれを「私が同意した事柄のlitany」と要約しました。私の要約は、業界は過去10年間でこの分野で真の進歩を遂げたということです。私たちの周りの空が落ちてくるといういつもの見解にもかかわらずです。
Steveは、後で「ソフトウェア開発:数学と科学、それとも芸術と工芸?」というパネルで私と同じでした。それは、OOPSLAの毎年のテーマになりつつある、ソフトウェア開発のメタファーのもう1つの検討でした。最近、私は、ソフトウェア開発の良いメタファーは死んだものだけだという見解を形成しているようです。私は、ソフトウェアエンジニアリングのメタファーの問題と、製造のメタファーに対する特定の攻撃について、いつものように長々と話しました。
ソフトウェアを製造とみなすことへの攻撃は、OOPSLAのすべての参加者がSoftware Factoriesのコピーを景品バッグに入れてもらったので、特にタイムリーでした。私はこの作業をしばらくの間知っていましたが、このメタファーに対する私の本能的なアレルギーは、「工業化が必要だ」という動機によってのみ強化されました。しかし、深く掘り下げると、ここには良いアイデアがあります。特に、統合されたドメイン特化言語機能のアプローチです。
木曜日のAmazonのWebサービスの基調講演の半分を逃しました。予想よりもはるかに優れた講演でした。Amazonのものに基づいて人々がやっている興味深いことがたくさんありました。そして、Amazonがデータを簡単かつ自由に利用できるようにすることで、これを喜んで奨励していることに敬意を表さなければなりません。もちろん、そうすることは純粋な利他主義ではありません。Amazonのブランド構築にも役立ちます。長い間、このような記事はこのリンクのようにAmazonにリンクしています。なぜなら、それは本の参考文献をリンクするための事実上のポイントになっているからです。私はそれが簡単だからそうしています。たとえ私が彼らの紹介スキームに参加していなくてもです。
私の2つ目のOOPSLAパネルはオフショア開発に関するものでした。Thoughtworksのバンガロールラボでの経験に基づいて招待されました。しかし、オフショア開発を成功させるための仕組みについての質問はなく、オフショア開発の動機と結果に焦点を当てたものでした。明らかだったのは、オフショア開発が米国で何につながるのかという、まだ明白な恐怖があるということです。しかし、私はまだこの多くは誤った製造メタファーに基づいていると思っています。
.NET対Javaの対決が最後のパネルでした。しかし、私が言ったように、カナダ人は国境で銃を没収しました。私はQuestionTimePanel形式を使用しました。これは、パネルを合理的な議論に集中させるのに役立つことがわかりました。パネルの議長を務めることに集中しすぎていたので、あまり覚えていません。そのため、eweekのレポートがあってよかったです。
私にとって印象的だったのは、Anders HejlsbergがC#について現在考えていることを示す2つのことです。1つは、オブジェクトとリレーショナルデータベースの間の悪名高いインピーダンスのミスマッチに対処することです。もう1つは、静的型付けと動的型付けの利点を組み合わせるために、型推論に移行することです。