大事なのは、オブジェクト…じゃなくて、メッセージング
Smalltalk の場合、一歩という基本に当たるのはオブジェクトです。つまり Smalltalk では、すべてがオブジェクトとメッセージ交換を扱います。
IBM Developer 日本語版 : 大変申し訳ありません。このページは無効です。
ポール・グレアム …じゃなくて ブルース・テイト、わかってねーな。w まあ、でも、よくある誤解だし、むしろ、ポジティブな(ホントか?w)扱いで、このような人目につく場所で有名人に Smalltalk に言及してもらえることのほうが、Smalltalk の存在をアピールするためには重要かもしれません。
あらためて、Smalltalk …というかアラン・ケイのオブジェクト指向の場合、ここで「一歩」という基本にあたるのは「メッセージング」としたほうが自分にはしっくりきます。オブジェクトはその受け手(レシーバ)に過ぎず、その気になれば代わりはいるわけで(では、今すぐ Smalltalk からオブジェクトを除いて見せろ!とか言われても困りますが…)本質ではありません。クラス(や、それがオブジェクトであること)も言うに及ばず。
(追記:念のため、冒頭でことわってあるとおり、これは、ケイの「メッセージングの」オブジェクト指向に乗っかる場合の話で、ストラウストラップの「ユーザー定義型の」オブジェクト指向に乗っかるなら逆に「メッセージ」のことなどいっそ忘れてしまった方が幸せになれます(それが Smalltalk であったとしても!)。ただし、その場合の「一歩」は「オブジェクト」ではなく「クラス」のほうが相応しいでしょう。ここのところ、くれぐれも読み違いのないようにお願いします。)
もっとも、アラン・ケイ(Smalltalk-80 のころにはすでに XEROX を離れている…。為念)によれば、Smalltalk で条件分岐やループなどまで(内部的には単なる GOTO 文であるにもかかわらず!)メッセージングに見せかけようとする Smalltalk-80 以降のやりかたは“やりすぎ”なんだそうです(^_^;)。私は好きなんですけどねー。
そんなメッセージング大好き!な私でも、SELF みたいに代入にいたるまで、ほんとにすべてをメッセージにしてしまうのは、さすがにちょっと(いや、かなり…)使いにくさを感じます。心地よく感じる徹底度合いというのも、ひとそれぞれ…ですね。