🧩 導入:オブジェクト指向が読みにくいとされる背景
オブジェクト指向(OOP)は、大規模開発やドメインモデリングに適している一方で、可読性が低くなると感じられる場面も多くあります。
その主な理由には以下が挙げられます:
- 処理の流れが複数のクラスやメソッドに分散し、追いにくくなる(間接参照が多い)
- 設計原則や再利用性を重視するあまり、抽象クラスやインターフェースが乱立し、全体構造が見えにくくなる
- 特にJavaやC++では、ボイラープレートコード(定型コード)が大量に発生し、意味のあるロジックが埋もれてしまう
こうした理由から、「オブジェクト指向は可読性が低い」と主張されることがありますが、それは言語の問題というより、設計や表現の仕方の問題でもあります。
1. オブジェクト指向言語は本当に可読性が低いのか?
● 可読性が低く感じられる理由:
- 処理が分散して追いにくい(クラス、メソッド、インターフェースの多用)
- 抽象化過剰(小さなクラスやインターフェースが乱立)
- ボイラープレートコードが多い(特にJavaなど)
● 反論(OOPの可読性メリット):
- 責任分離により局所的な理解はしやすい
- ドメインモデルに沿った構造で現実世界の概念と対応
- 再利用性・保守性に優れ、長期的には読みやすく保てる
2. 関数型言語は読みやすいのか?
● 状態を排除した純粋性により、理論上は読みやすい
- 明示的な入力→出力が分かりやすい
- 副作用が制御されることで予測可能
● しかし現実のプログラムは状態に満ちている
- IOや状態管理は結局モナドや複雑な抽象で実装され、逆に読みにくくなる
- 副作用の流れが暗黙的で、学習コストも高い
3. 真の可読性を決めるのは「コメント」や「意図の明示」
● 言語そのものよりも重要な要素:
- 適切なコメント(特に「なぜ」)
- 明確な命名(変数・関数・クラス)
- 設計レベルでの構造化(責務の分離、レイヤー設計)
- 一貫したコーディングスタイル
● コメントの有無で可読性は劇的に変わる:
- コメントがなければ、どんな優れた言語でも**「何をしているか」は分かっても「なぜそうしているか」は分からない**
- 「コメント不要論」は一部の理想に過ぎず、現実の開発では補助的メタ情報として不可欠
✅ 最終結論
- コードの可読性は、言語の設計だけでは決まらない
- 本質は「意図の伝達」がどれだけできているか
- その鍵となるのが、コメント・命名・設計の3点である