「オブジェクト指向でなぜつくるのか」 第7章のクイズ

最近話題の同書ですが、あまりに絶賛の嵐なので購入してみました。内容は端的には Java ユーザー向け「憂鬱なプログラマのためのオブジェクト指向開発講座」(の入門編)といった感じでしょうか。たいへん平易に氏の考えるオブジェクト指向が説明されていて、紋切り型のオブジェクト指向解説のおかげで、ありがちな隘路に迷い込んでしまった子羊たちの福音として重宝されているようです。

ただ、「憂鬱…」と異なり C++ ではなく Java を対象にしなければならないせいか、「メッセージ指向」オブジェクト指向の徹底排除や否定、あるいは「抽象データ型のスーパーセット」オブジェクト指向との明確な区別ができないまま、2つの異なるパラダイム(あるいは手法)を混在させている現状が生じさせる違和感を、苦しげな持論の展開でお茶を濁そうとしているように見えてしまう…というのは、少々うがちすぎというものでしょうか…(^_^;)。

そんな中でも個人的にちょっと好感が持てるのは、第7章の「2つの意味を持つことが混乱をもたらした」の節。「メッセージ指向」と「抽象データ型のスーパーセット」の区別は明示的にしていないながらも、Smalltalk というきわめて狭い世界でのみ通用する“ドグマ”にすぎないはずの「すべてをオブジェクトとそれへのメッセージ送信で表現する」というチャレンジングな話が一人歩きして、“オブジェクト指向”という言葉の共有を介して「型による抽象化手法」が本来あるべき姿を“汚染”してしまった現状を、端的に表してくれています。


ところで同書では、各章にウォーミングアップクイズと題して、その内容に関連のありそうなクイズが提示されています。オブジェクト指向がプログラミングの枠を超えて、広い分野で使われはじめたこととそれが引き起こした混乱について触れたこの章では、Smalltalk への言及があるためか、こんなクイズが出されています。

オブジェクト指向」という言葉を考案したのはプログラミング言語Smalltalk を開発したアラン・ケイ氏と言われていますが、1970年代に氏の研究成果を目の当たりにし、大きな衝撃を受けたとされる、コンピュータ史に残る人物は誰でしょうか?
   ア.マイクロソフト社を興したビル・ゲイツ
   イ.アップル社を興したスティーブ・ジョブズ
   ウ.Java を開発したジェームズ・ゴスリング氏
   エ.Linux を開発したリーナス・トーバルズ

当然、答えはイなのですが、じつは、アもくさいですね(笑)。abee さんによると、ビル・ゲイツSmalltalk 大好きだそうですから。 実際、比較的早くから Smalltalk システムを良く研究しているようで、たとえば Windows には Mac の頭越しに Smalltalk システムから直で採用されたと思われるルック&フィールをいくつか見つけることができます。.net にいたっては、アラン・ケイに「よく見ると Smalltalk に似ている。Javaよりレベルが高い」なんて褒められ(?)ちゃっていますしね。Mac フリークには憤慨する向きもあるようですが、氏の「ゼロックスの家に押し入ってテレビを盗んだのが僕より先だったからといって、それで僕らが後から行ってステレオを盗んだらいけないってことにはならないだろう」という言葉は実に当時の状況を的確に言い表したものだったりするわけです。