大事なのは、オブジェクト…じゃなくて、メッセージング

Smalltalk の場合、一歩という基本に当たるのはオブジェクトです。つまり Smalltalk では、すべてがオブジェクトとメッセージ交換を扱います。

IBM Developer 日本語版 : 大変申し訳ありません。このページは無効です。

ポール・グレアム …じゃなくて ブルース・テイト、わかってねーな。w まあ、でも、よくある誤解だし、むしろ、ポジティブな(ホントか?w)扱いで、このような人目につく場所で有名人に Smalltalk に言及してもらえることのほうが、Smalltalk の存在をアピールするためには重要かもしれません。



あらためて、Smalltalk …というかアラン・ケイオブジェクト指向の場合、ここで「一歩」という基本にあたるのは「メッセージング」としたほうが自分にはしっくりきます。オブジェクトはその受け手(レシーバ)に過ぎず、その気になれば代わりはいるわけで(では、今すぐ Smalltalk からオブジェクトを除いて見せろ!とか言われても困りますが…)本質ではありません。クラス(や、それがオブジェクトであること)も言うに及ばず。

追記:念のため、冒頭でことわってあるとおり、これは、ケイの「メッセージングの」オブジェクト指向に乗っかる場合の話で、ストラウストラップの「ユーザー定義型の」オブジェクト指向に乗っかるなら逆に「メッセージ」のことなどいっそ忘れてしまった方が幸せになれます(それが Smalltalk であったとしても!)。ただし、その場合の「一歩」は「オブジェクト」ではなく「クラス」のほうが相応しいでしょう。ここのところ、くれぐれも読み違いのないようにお願いします。)


もっとも、アラン・ケイSmalltalk-80 のころにはすでに XEROX を離れている…。為念)によれば、Smalltalk で条件分岐やループなどまで(内部的には単なる GOTO 文であるにもかかわらず!)メッセージングに見せかけようとする Smalltalk-80 以降のやりかたは“やりすぎ”なんだそうです(^_^;)。私は好きなんですけどねー。


そんなメッセージング大好き!な私でも、SELF みたいに代入にいたるまで、ほんとにすべてをメッセージにしてしまうのは、さすがにちょっと(いや、かなり…)使いにくさを感じます。心地よく感じる徹底度合いというのも、ひとそれぞれ…ですね。