オブジェクト指向言語が流行した必然性について考える(2)
構造化言語ではできなくて、オブジェクト指向言語で出来るようになったこととは何か? 結論から言ってしまうと、構造化言語では
主語が書けなかった
いや、そんなことはないだろう。構造体とか主語っぽいじゃない? と思われるかもしれません。(構造体何それ?という人は適当にググッて下さい。実は僕もよく知りませんw) 確かに構造体は主語にできそうですが、主語になるにはある能力が足りません。
ではある能力とは何か?
ちょっとWikipediaの「主語」から少し引用してみましょう
アリストテレス以来の伝統的な論理学における「述語」(katēgoroumenon) の対概念である hypokeimenon に由来し、それが中世以降のヨーロッパ伝統文法にとりいれられて成立した概念である。その後のデカルト派言語学から生成文法などに至る近現代の言語学にも受け継がれ...
… … なんか、心を病みそうw これはわけわからないですね。ということで、主語とは何か? を独自に分析していきましょう。とりあえず、幾つか文を並べてみて考察して行きましょう。
リトルリーグ選手が打つ
大リーガーが打つ
女子高生選手が打つ
…
上記の文を読んでみてどんな場面を想像しましたか? 大体の人はボールをバットで打っているシーンを想像したと思います。しかしそれぞれに違うシーンを思い浮かべたと思います。
女子高生選手といわれて、胸毛ボーン! なアメリカ人ギャランドゥを想像する人は一部マニア以外にはいないでしょうが、大リーガーといわれてそれを想像する人は結構いるはずです。セリフは全部「HAHAHA Oh Yeah!」みたいなw
まあ、女子高生選手といわれれば 片岡 安祐美 さんとかを思い浮かべるのが普通でしょうか。今は女子高生とかじゃないけど、イメージ的にはきっとそんな感じかと
ボールの飛距離はどうでしょうか? リトルリーグ選手が東京ドーム柵越え連発! とかは想像しないですよね? 大リーガーなら自然な感じですけど。
たぶんそれぞれの文を読んで同じ光景を想像した人はいないと思います。振り方、振るスピード、打ち返すボールの飛距離… 似たようなもんだけどそれぞれ若干違う。なにか不思議な違い。面白いですよね。
さて、ではこの文はどうでしょうか?
野球選手が打つ
どんなシーンを想像しましたか? うまく想像できないですよね? あえて表現すれば「なにかしらのユニフォームを着てバッターボックスに立っているだれか?」でしょうか? よくわかんないですよね。
では、この文から「リトルリーグ選手が打つ、大リーガーが打つ、女子高生選手が打つ」
シーンを想像した場合、それは間違っているでしょうか?
どれも、間違っていないですよね?
「女子高生選手が打つ」で、ギャランドゥかつアヘ顔ダブルピースなアメリカンを想像するのは(いろいろな意味で)間違っているのに、です。なにか不思議ですよね。
こういう具体的な要素を少し抜いていろいろな含みをもたせるような文は一般的に「抽象度が高い文」なんて言うらしいですが、抽象度? って感じですよね。そんな時にはWikipedia…(以下略)
どうせ難しく書いてあることが確定しているので、簡単に行きましょう。抽象の反対を考えるとわかりやすいので、反対を考えましょう。抽象の反対は「具象」ですよね。具象? って感じですか? ではWiki…(略)
ま、とりあえず、具象化した文を示しましょう。
イチローが打つ
この文を読んで、草野球場を思い浮かべる人は少ないだろうし、ホームランを連打する姿を想像する人も少ないでしょう。おそらくは大リーグの球場で鈴木イチローがユンケル振っている姿を想像する人がほとんどだと思います…
まあ、そんなことはどうでもいいのですが、大体の人のイメージは、かなり狭い一定の範囲に固まっているはずです。文脈からして小沢一郎とか水木一郎とか水樹奈々様とかを思い浮かべる人はたぶんいないはず。
そんな感じにイメージする幅が狭まるのは、主語が固有名詞の「鈴木イチロー」になったからですね。
鈴木イチローは一人ですが、野球選手となると数万はいるでしょう。草野球選手を含めれば数十万はいるはず。そんなふうに考えれば、大体はその言葉が含まれる範囲が広くなれば「抽象度」が高くなり狭まれば「具象度」が高くなる(抽象度が低くなる)と考えて問題ないでしょう。順番に並べると
← 抽象化 具象化 →
← 多い 少ない →
野球選手 - プロ野球選手 - 大リーガー - 鈴木イチロー
な感じですかね。さて今度は少し趣向を変えた文で行きましょう。
田代まさ◯が打つ
ノ◯ピーも打つ
えっ! それはあれですか! 打つものは白いうさぎ的なものですか! 寂しすぎて死んじゃう感じですか! 愛は死にますか! 山は死にますか! さだ(まさし)もどうですか!
… どうでもいいですねw
今度は、打つ対象が変わりましたね。片栗粉的なアレです。目がうさぎ的(真っ赤に)なる感じのハイソでブルジョアな強力粉的なものの事ですね、なにがどう強力なのかはよく知りませんが。
今度の文は「目的語はボール」という暗黙の前提が崩れましたね。不思議です。顕微鏡で見れば白いボールに見えなくも無い、ということは内緒ですw プログラム的に言えばデフォルト値が変わった、と表現できるでしょうか。
さてさて、文を並べての考察はこれくらいにしましょう。これら文には共通点があります。
使用している述語が「打つ」
という部分ですね。しかしおなじ動詞を使用しているのにイメージする場面はそれぞれ違います。なぜでしょう? 簡単ですね。主語が違うから、ですね。
こんな風に改めて考えると、不思議だと思いませんか? 主語が変わると述語に使用している動詞の意味が変わるんです。もっと正確に言えば、主語が具体化(具象化)すれば、動詞の意味も具体化(具象化)するわけです。逆に主語が「野球選手」のように抽象化すると、動詞の意味ももやっとする(抽象化)。主語と述語の間には明確な連動性があるわけです。
「打つ」という動詞単独だともやもや(抽象度)は最大化し「何かと何かをぶつける」イメージとしか言えなくなる。それが「野球選手が」と主語がつくと「何かと何か」という曖昧な部分が「バットとボール」で埋まる。確実にそれに確定しているわけではないが、ほとんどの人はそれを想像する。
ほとんどの主語は名詞で、ほとんどの述語は動詞です(当社比) 結構極端な断定ですが、間違ってはいないはず。しかし「名詞は主語である」と言われると違和感がある。それは名詞に何かの能力を足したものが「主語」になるからなのでしょう(当社分析)。
その能力とは一体何か? という問いがこの記事の主題です。
その答えは僕の解釈だと、名詞が主語になるために必要な能力とは「動詞の意味を変える能力」つまり主語に求められる能力とは
動詞の意味をコントロール出来る事
別の言い方をすれば”動詞の意味を決定する能力” 構造化言語ではこれが出来なかった(極論)。名詞的役割の構造体や動詞的役割の関数はあったが関係性は対等だったので連動性は薄かった。しかしオブジェクト指向言語では、これが出来るようになった。その方法は簡単に言ってしまえば
動詞を名詞の管理下に置く
という名詞と動詞の間に主従関係の様な関係性を強制することで、動詞の意味が主語(名詞)に連動することを可能にした(極論)。
ここらへん割と極論で押し切っていますが、これら記事はオブジェクト指向を説明する上で避けて通れないややこしい概念をなるべく抜いてどこまでオブジェクト指向の本質にせまれるか? の思考実験を含んでいるので、ところどころ変な感じがすると思います。まあ、オブジェクト指向を理解している人には、この話は「ポリモーフィズム(多態性)の話につなげるつもりだな」ということがわかると思いますが。
ただ、そういう人にとっては「ポリモーフィズムを説明する例題に野球選手ってw そこは伝統に従い犬猫を使え」と思うかもしれません。しかも「野球の文脈で田代神出てきたw バット振るとか関係ないじゃんw」と思うかもしれません。
でも神はバットを振っているんです。
えっ? 意味がわかんないって?
だって、彼はアレを打つことで
人生を棒に振ったじゃないですか …
… … …
… …
…
うん、そうなんだ。 ただ、ただ、このオチを言いたかっただけなんだ。
だから野球選手なんだ。わかってほしい、この壮大にすべった感をこよなく愛する人がいることを。ただこのオチに導きたいがためだけに「オブジェクト指向言語が流行した必然性について考える」などという大上段から振りかぶった前フリを書き始めたということを。
今僕に蔑みの目を向けている君にもきっとくるだろう、この甘酸っぱい羞恥プレイに目覚める時が! さあ嗤うが良い! 蔑むが良い! 僕は君を待っている、賽の河原の向こう岸で…
ということで、どうでもいいオチを開陳した所で終わりますw 続きはまた来週。