Goslingへのインタビュー。彼までRubyに言及してくれるとは。 これもRailsのおかげだろう。ありがたや。シカゴのほうに足を向けて寝られない。 だんだん足を向けられない方向が増えてくな。
しかし、RailをJRubyとつなげて答えるなどとんちんかんな印象を与える答えも多い。 また、ちょっとスクリプト言語を見下していたり、 「言語のパワー」を低く見ているような印象も受ける。
ところで、彼の
ただ1つ、スクリプト言語の作成者には、もっと変わったものを作ってほしいという願いを抱いています。
というメッセージを自分のものとして聞ける立場の人間はさほど多くないと思うのだが、 さいわいにも私はその一人だ。
正直、「あまり変わったものを作らない(少しだけ変わったものを作る)」ことこそが 言語の成功の秘訣だと考えているので、 「もっと変わったもの」についてはあまり積極的ではないのだが、 少し考えてみよう。
「変わったもの」...うーん、APLのリストとか。 RubyのArrayにアレを実現できる機能を用意すれば...。
うむ、一次元のものについては今でもinjectとか使えばでできちゃうのかな。
20日分のエントリは結構話題になったようで ありがたいことである。小飼さんのところでも 「オブジェクト指向は構造化の「次」か?」というテーマで反応していただいている。
彼は構造化とOOPは「直交する」と認識していらっしゃるようだ。
ま、理屈ではOOPだが構造化されてないプログラムは存在しえるので、 直交していると言えないことはないと思う。 が、それを言い出すと構造化プログラミングを構成する各要素も直交してるし。
要するに同じカテゴリに属する同じ性質のもので、 オブジェクト指向(プログラミング)の方が後から出てきた、程度の意味なんだけど。
まあ、それはある意味どうでも良いことなんだが、 小飼さんの文章を読んでいて、少し気がついたことがある。
実際smalltalkやhypertalk、そしてsqueakといったプログラミング環境では、オブジェクトはフィールドとかボタンとかといった、「もろに目に見える」「実存」であり、それ故まだものごとを抽象化して捉えることの出来ない子供でも始められるようになっている。
Smalltalk環境やHypercardにおいて、「オブジェクトを操作できる感」が提供されていることは 事実だが、それは「オブジェクト指向プログラミング」とは直接関係ない。 それはある意味「アプリケーションの機能」であって、 オブジェクト指向プログラミングによらないアプリケーションでも ユーザに「オブジェクト感」を提供できるだろう。
オブジェクト指向プログラミングを使った方が そのようなアプリケーションを作りやすいだろうけど、逆に言えばそれ以上ではない。
で、私よりも数学的思考法に強そうな小飼さんまで、 そのような「混同」をしてしまうというのは、 単にマーケティング用語として「オブジェクト指向」が使われた不幸だけでなく、 「オブジェクト」という単語が持つ「魔力」というのものは 私の想像以上に強いということなのかもしれない。
オブジェクト指向プログラミングにおけるオブジェクトという抽象化された存在と 目に見える(あるいは触れる)モノとの連結性を強く連想してしまうのが (普通の)人間というものか。
私にとってのオブジェクトは、現実に対応するものがあるにしても 抽象化された存在であるから、現実とどこまで対応しているかなんて 気にしたこともないのだけれども。 そんなの「三匹の猫」と「数字の3」が同じ性質を共有してないと 文句を言うのと同じくらい不毛な気がする。
あるいは、私がそう感じるのは、私が日常的に扱う「オブジェクト」は、 「文字列」とか「配列」とか「コンティニュエーション」とか 現実世界に対応するものが存在しないものばかりだからかもしれない。