Personal tools
You are here: Home ブログ 井上 アラン・ケイのオブジェクト指向(Smalltalk)を誤解していたようです
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

アラン・ケイのオブジェクト指向(Smalltalk)を誤解していたようです

プログラマーのジレンマ 」に、わずか2ページほどですが、アラン・ケイのオブジェクト指向を紹介しているページがあります。これを読んでアラン・ケイのオブジェクト指向を誤解していたことを知りました。

アラン・ケイの、あるいはSmalltalk的なオブジェクト指向と、C++的なオブジェクト指向、つまりJavaやRubyなどの、いわゆる現在主流のオブジェクト指向に違いがある、という話は聞いたことがありました。

この違いを、ぼくは勝手に、Smalltalk的オブジェクト指向はオブジェクト中心、C++的オブジェクト指向はクラス(型)中心、つまり今風の言葉を使うと、前者がプロトタイプベース、後者がクラスベースの違いだろうと思っていました。断片的な知識からの勝手な想像でした。この想像は間違っていたようです。

アラン・ケイに関する記述の一部を引用します。

コンピュータ用語でいうと、スモールトークはコンピュータ自体の概念の再帰である。「コンピュータというもの」を、プログラミング言語にたいてい付随するデータ構造、手続き、関数といった諸々の「全体より強度の弱いもの」に分割するのではなく、スモールトーク・オブジェクトはコンピュータの可能性全体の再帰である。つまり、そのセマンティクスは、無数のコンピュータがすべて超高速ネットワークでつながっているようなものだ。

書籍「 パーフェクトJava 」でも繰り返し唱えていますが、現在主流のC++的オブジェクト指向は、分割統治の上に立つ技法です。全体を部分に分割してソフトウェアの複雑さを軽減します。データと手続きを一体化することの意味は、分割した部品の独立性を上げるためや、部品相互の関係性を整理するための必要性から導かれます(逆に言えば、この目的を達成できないのなら、データと手続きの一体化にこだわる必要はありません)。

アラン・ケイ的、あるいはSmalltalk的オブジェクト指向は、上記の説明を見ると、分割統治ベースのオブジェクト指向とは、還元論と全体論ぐらいに正反対なモノに見えます。

C++的オブジェクト指向、分割統治の技法としてのオブジェクト指向はまさに還元主義です。独立性が高い部分に分割することで、全体の複雑さを軽減できるという考えです。

Smalltalk的オブジェクト指向は還元論的プログラミングを否定するかのように読めます。

オブジェクトが必要なすべてのモノ(データと手続き)と一緒に移動することの意味は、部品の独立性とは関係せず、むしろ分割への否定ですらあります。オブジェクトは、それ自体、コンピュータ全体の投影なので分割しようもないと主張しています。

プログラミング言語のSmalltalkは、自分の知る限り、ここまでの過激さは感じませんでしたが(プログラミング言語Smalltalkの印象はRubyからLispっぽさを抜いた感じです...冗談です)。

わずか2ページでアラン・ケイを分かったように語るのは気がひけるので、アラン・ケイに関する本を読んでみようと思います。と言っても、何を読めばいいのか分かりませんが。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/smalltalk-oo/tbping

Re:アラン・ケイのオブジェクト指向(Smalltalk)を誤解していたようです

Posted by sumim at 2009-10-16 08:47
お邪魔します。アラン・ケイの考える「オブジェクト指向」という考え方については、個人的には次の文書がとても勉強になりました。なにかの参考になれば幸いです。

http://metatoys.org/oxymoron/oxymoron.html
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en

Re:アラン・ケイのオブジェクト指向(Smalltalk)を誤解していたようです

Posted by inoue at 2009-10-17 00:47
ありがとうございます。

リンク先を読んでみると、Smalltalk vs. C++を全体論vs.還元論と見たのは深読みだった気がしてきました。単なる、動的型vs.静的型の対立軸しか読み取れませんでした。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.