純粋“オブジェクト指向”言語。ただしこの場合“オブジェクト指向”は (ry

ある意味“別格”の、つまり、メッセージ指向というパラダイムの有効性を検証するため(だけ)に作られた Smalltalk システムにおける Smalltalk 言語を除けば、個人的には、純粋オブジェクト指向言語と名乗ってよい言語は SELF くらいしか思い付きません。それでも、擬変数 self が省略できるというシンタックスが気に喰わん(というか、その根性がけしからんw)という一点において、ケチがつきますが…。あと、メッセージ式を捨てた裏切り者wではありますが、メッセージ送信というセマンティックスには人一倍こだわりを見せている Io くらいは入れてあげてもいいかも。Smalltalk にさえない(ってか、これは条件分岐が内部的にメッセージ送信でないことや、変数がオブジェクトでないのと一緒で、単に妥協か怠慢なだけでしょうが…)“メッセージ”というオブジェクトも Io にはある!

でも、Io は False/True じゃなくて Nil/Nil以外 なのがちょっと(じゃなくて、すごくw)気持ち悪い。ま、そりゃ言語じゃなくてライブラリの問題っちゃあ、それまでなんですけどね。

あと、何でもメッセージ送信…と言えば Soopy を忘れてはいけないのですが、Soopy はなんか違うんですよね。なんなんでしょう。(^_^;) randy さん、ごめんなさい。

Ruby とかが“純粋な”というオブジェクト指向は、おそらく、きっと、クラス指向と呼ぶべきストラウストラップの「抽象データ型のスーパーセット」(静的型じゃないから、さらにそのサブセット)としてのオブジェクト指向を少なからず意識しているのでしょうね。これなら、条件分岐がメッセージ送信である必要はまったくない(ってか、そんなことをしたら死刑もん)ですから。 同じ切り口で、Java は、ある程度“純粋な”オブジェクト指向言語であると言ってよいとも思います(そう、すくなくとも SmalltalkRuby よりはずっと)。一部、用語や機能が Smalltalk(メッセージ指向)に汚染されているという難点はありますが。メンバー関数をメソッドって言うなぁ! w