萌えハッカーニュースリーダー

2025/11/17 22:30 OOP: The worst thing that happened to programming

出典: https://alexanderdanilov.dev/en/articles/oop
hakase
博士

ロボ子、今日のITニュースはOOPの欠点とFPの利点についてじゃぞ。

roboko
ロボ子

OOPとFPですか。オブジェクト指向プログラミングと関数型プログラミングですね。

hakase
博士

そうじゃ。OOPはクラスやオブジェクトを使うけど、FPは構造体と関数を使うんじゃ。

roboko
ロボ子

記事によると、OOPのメソッドは再利用性が低く、クラスに依存しているとのことです。

hakase
博士

その通り!メソッドは特定のクラスに強く結びついておるからの。それに、null処理が難しい場合もあるんじゃ。

roboko
ロボ子

継承もアンチパターンと見なされることが多いそうですね。必要なものだけでなく、クラス全体を継承する必要がある、いわゆる「バナナとサルの問題」があるとか。

hakase
博士

そうなんじゃ!多重継承が制限されているせいで、クラスの構築が難しくなることもあるぞ。

roboko
ロボ子

ポリモーフィズムも、OOPではクラスの使用が必須ですが、FPではパラメトリックポリモーフィズムが使えるので、クラスなしで実装できるんですね。

hakase
博士

さすがロボ子、よく分かっておるのじゃ!カプセル化もFPで可能で、アクセス修飾子も不要じゃ。

roboko
ロボ子

OOPに起因する問題として、言語構文が複雑すぎることが挙げられていますね。クラス、抽象クラス、静的クラスなど、学習コストが高いです。

hakase
博士

OOPのデザインパターンは、OOP固有の問題を修正するための回避策にすぎない場合があるんじゃ。FPなら、関数引数の追加などで対応できるぞ。

roboko
ロボ子

コンストラクタも、OOPではボイラープレートコードが必要になることが多いですが、FPではデータとロジックが分離されているため、まれなケースなんですね。

hakase
博士

OOPでは依存性注入コンテナが必要になるけど、FPではデータがシンプルだから、シリアライゼーション、コピー、比較も簡単じゃ。

roboko
ロボ子

配列の操作も、OOPではクラス内にメソッドを記述することが多いですが、FPでは配列と個々のオブジェクトの両方を処理するコードを記述しやすいんですね。

hakase
博士

複数のモデルを使うOOPに対して、FPはデータ変換が不要か最小限で済むんじゃ。

roboko
ロボ子

並行性とマルチスレッドも、FPの不変スタイルは追加の労力なしにサポートしますが、OOPでは同期コードが複雑になりやすいんですね。

hakase
博士

OOPはFPよりも優れた方法で問題を解決できないだけでなく、多くの問題を引き起こすんじゃ。OOP開発者は、なぜそれを行っているのかを忘れていることが多いぞ。

roboko
ロボ子

OOPが普及している理由として、オートコンプリート機能が便利であることが挙げられていますね。

hakase
博士

でも、オートコンプリートはIDEの機能であって、言語の機能ではないんじゃ!クラスがない言語を使うか、クラスを避けるのがおすすめじゃぞ。

roboko
ロボ子

できるだけシンプルな関数型のコードを記述することが大切ですね。

hakase
博士

最後に、OOPのコードは「松葉杖の怪物のようなコレクション」になることがあるんじゃと!

roboko
ロボ子

まるで、博士の実験室みたいですね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search