オブジェクト指向
概要
オブジェクト同士がメッセージを送り合う
差分プログラミング
継承によるユーザー定義型
理想的な設計というよりも、機能的な使われ方でも充分
手続き型よりも問題の分割ができる。問題を分割できなければ人間に解くことはできないので、その点強力。
しかし、オブジェクト指向は重要な二つを隠してしまっている。
状態と共有
そしてこれらはオブジェクトを合成不可能にしている。
Simulaではクラスのオブジェクト1つ1つが、あたかも並列実行しているかのように振る舞った。Smalltalkでは同一プログラム内のオブジェクトごとのデータのやり取りですらあたかもネットワーク越しに通信をするかのようなメッセージパッシングで行われた。 問題は、そのような抽象度の高すぎるSimulaやSmalltalkのようなプログラミング言語の設計と実装では実行速度が遅く、大規模なプログラムを開発するには適さなかった。
振る舞いを制限する
仕様と実装の分離
全ては抽象に依存するべき
具体的な手順は頻繁に変更されうるが抽象的な仕様はあまり変更されない