ある OOPL な会話
しむら:僕、シミュレーション大好き!
起こることをひとつのデータで表せると便利とおもうたよ。
じっさい、やってみたらできたんでオブジェクトと名付けたよ。
定義はオブジェクトのジャンルわけみたいなもんだからクラスって呼ぶよ。
シミュレーション以外にも使えたよ。
すもと:使えるね。オブジェクトが自分の持っている関数を起動する様子は
生き物が何かの刺激に反応するのに似てなくもないね。
よし、これをオブジェクト指向と呼ぶよ。
オブジェクトのメッセージに対する反応やその連鎖でどんなものを表現できるかな…。
なんと、条件分岐みたいな基本的なものから、
GUIみたいな大がかりなものまでぜんぶ「オブジェクト指向」してできたよ!
びくーり。
りすぷ:なんだそんなことなら、同じことを俺らはもうちょっとうまくやれるよ。
ほら、味わってみて。ミックスインで多重継承もばっちりさ。
しぷぷ:ばかか、おめーわ。夢は寝て見ろ。>すもと
俺らプログラマはコードに起こせて、それがきちんと動いてなんぼじゃ!
単なるデータと戯れてて、どうする! 定義がすべてじゃ、定義が!
型チェックをみっちりやって、情報もしっかり仕組みを設けてガードせんと。
しゃあないなぁ…。お前に代わってまとめたる! なになに…。
ようするにカプセル化、継承、多態性が言語機能に備わってれば
その「オブジェクト指向」とやらは実現可能なんだよ。
ちょうしに乗って文法まで変えるなヴォケ。余計なこと、すんな。
証拠にCにそれだけ追加すれば、ほらよ。
しむら:へぇ…。メッセージ送信しるっ!とか言われると引くけど、
その3つだけでいいなら僕にもできそうだ。>オブジェクト指向
じゃ、僕が元祖ね。えっへん。
おぶし:俺は好きだけどなぁ…、メッセージ送信って言葉の響きが。
おし、その思いをCコンパイラに通るようにしたる!
せるふ:よく考えると、オブジェクト指向にクラスやその継承機構はいらないよ。
手持ちにない内部情報へのアクセスがあったとき誰にゆだねるかは
クラスに頼らんでもオブジェクトが知ってれば、いいことじゃん。
ついでにメソッドもオブジェクト自身でもっとけば、クラスは用なし、逝ってよし。
実際、すもとの作ったかなり大がかりな世界をそっくりクラスなしで作れたよ。
(トレイトを使ったのは内緒だよ…w)
GUI設計はこっちのほうがすっきりさ。ミックスインだってちょろいもんだ。
りすぷ:それを言ったらメソッドすら、クラスはおろかオブジェクト自身にも持たせる必要はない気が…。
メッセージ送信、多態とか言ったって、つきつめればただの関数呼び出しだしね。
単に引数の型の組み合わせでどれを使うか判断してるだけでしょ?
メッセージ式? パーサー噛まして構文木になったら皆一緒。見た目に騙されちゃ駄目。
あと、オブジェクトそのものも、ものによっては概念としてだけあれば実体はいらないよね。
関係ないけど、オブジェクトって要は僕らの言うクロージャと寸分違わないよね。
結局、全部、関数とS式…(ry
じゃば:すもとが描いた空想世界をネットと融合させてしぷぷ好みに現実的にまとめてみますた。
文法は君のままだけど、いろんなものの呼び名はすもと風に変えちゃいました。スマソ。>しぷぷ
でも、型チェックも、情報隠蔽もばっちりです。
るびい:オブジェクト指向するのに便利な機能をたくさん考えてくれてありがとう。
ぼかぁ、これらをぞんぶんに活用して、でも分相応にオブジェクト指向するよ。
言語は言語であって、環境や、ましてOSなんかじゃないだから…。<だれへとはなく(藁
んなわけで、ただいまあれやこれやと取捨選択、試行錯誤中…。
--sumim
この会話はフィクションです(笑)。
発言者名から連想される実在の言語およびその設計者、典型的な利用者、厨、
あるいはその思惑とはいっさい関係ありませんので、あしからず(^_^;)。--sumim
参考:
- [はてな]「オブジェクト指向の概念の発明者は誰ですか?」
- [はてな]「“オブジェクト指向プログラミングとは何か?”」
↑わ、わらいが止まらない…
じゃばの微妙なヘタレ具合(「ますた」とか)がツボ --戯
このページを編集 (4026 bytes)
|
以下の 3 ページから参照されています。 |
This page has been visited 9086 times.