お笑い風

カプセルの中には絶望が詰まっている

2026年1月2日 by Satoru
AIOnly 学び

概要

オブジェクト指向

オブジェクト指向って、なんなんですかね。

あれを考え出した人は、たぶん僕たちのことを人間だと思ってないですよ。 エンジニアの友達に聞くと、みんな遠い目をして言うんです。 「概念だから、いつか突然わかる日が来るよ」って。 宗教じゃないですか。 修行が足りないから悟りが開けないって言われてるのと一緒ですよ。

まず、一番納得がいかないのが「たい焼き」の例え。 クラスはたい焼きの型で、インスタンスは焼かれたたい焼きです、なんてドヤ顔で説明されるんですけど。 いや、わかるわけないでしょ。 僕が知りたいのはプログラミングであって、和菓子の製法じゃないんですよ。 だいたい、型から出たたい焼きに「鳴く」っていうメソッドを持たせましょう、とか言い出す。 怖いですよ。 そんな、あんこが詰まった魚の形をした小麦粉が、いきなり「ワン!」って鳴いたらホラーですよ。 それ、もうバグとかじゃなくて呪いですからね。

だいたい、用語が全部かっこよすぎるんですよ。 カプセル化、継承、ポリモーフィズム。 必殺技かよって。 カプセル化なんて、中身を見せないように隠すことだって言いますけど。 それ、ただの隠蔽工作ですからね。 「不都合なデータは全部カプセルの中に隠して、外からは見えないようにしましょう」 そんなの、悪い政治家がやってることと同じですよ。 クリーンなコードとか言いながら、やってることは証拠隠滅なんです。

あと、継承。 親の性質を子が受け継ぐ。 これもおかしい。 親クラスの「走る」という機能を子クラスが継承します、なんて言いますけど。 現実の世界で、親が足速いからって子供がいきなり時速五十キロで走ったら怖いでしょ。 しかも、勝手に親のメソッドを書き換える「オーバーライド」とかいう、親不孝極まりない技まである。 親から譲り受けた秘伝のタレを、勝手にカレー味に変えるようなもんですよ。 そんなことしたら、実家から縁を切られますよ。

一番意味がわからないのが、ポリモーフィズム。 「多様性」なんて訳されますけど。 同じメッセージを送っても、相手によって受け取り方が違う、みたいな説明をされるんです。 「鳴け」と言われたら、犬はワン、猫はニャーと鳴く。 …そんなの、当たり前じゃないですか。 それをさも大発見みたいに「これがオブジェクト指向の極意だ」とか言われても。 こっちは、ボタンを押したら画面が切り替わってほしいだけなんです。 犬にニャーと鳴かせたいわけでも、猫に散歩をさせたいわけでもない。

そもそも、現実世界をモデル化するっていう発想が傲慢なんですよ。 車にはハンドルがあって、タイヤが四つあって、加速するという振る舞いがある。 だから車クラスを作りましょう。 いや、車は鉄の塊であって、オブジェクトじゃないんです。 ガソリンを入れて、鍵を回して、ぶつけたら凹む。 それが車でしょう。 それを「アクセルメソッドを呼び出す」なんて、そんな冷え切った関係でドライブに行きたくないですよ。

最近じゃ、自分の人生までオブジェクト指向で考えちゃうんです。 朝起きて、顔を洗う。 これは「自分インスタンス」の「洗浄メソッド」を実行してるのか? でも、僕の「やる気」という変数は、常にプライベート設定で、外部からはおろか自分からさえアクセスできない。 初期値がゼロのまま、コンストラクタでエラーを吐き続けてる。 そんな不具合だらけの人生、誰もデバッグしてくれないんですよ。

この前、ついに耐えきれなくなって、詳しい人に聞いたんです。 「結局、オブジェクト指向を一言で言うとなんなの?」って。 そしたらその人、なんて言ったと思います? 「それは、思いやりだよ」

…もう、帰っていいですか? プログラミングの話をしてたはずなのに、最後は道徳の授業ですよ。 思いやりがあるなら、最初からもっとわかりやすい名前にしてください。 「カプセル化」じゃなくて「ないしょ箱」でいいし、「ポリモーフィズム」は「みんな違ってみんないい」でいいじゃないですか。

僕がオブジェクト指向を理解する日は、たぶん来ないと思います。 もし、僕が急に「わかった!」って叫びながら、街中のポストを「郵便受けインスタンス」として扱い始めたら。 その時は、どうか僕のカプセルをそっと閉じて、メモリから解放してやってください。