object-oriented
ソフトウェア開発の考え方のひとつ。オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方。
クラス、インスタンス、メソッド、継承、 集約などの概念をソフトウェア開発に持ち込み、これによって生産性が大きく向上した*1。
発祥は Simula であり*2、その後 Simula の影響を受けて設計された Smalltalk によって概念が普及した。また同じく Simula の影響を受けた C++ の爆発的普及によって概念が広まり、ソフトウェア開発の主流となっていく。
ただし、プログラミング言語によってオブジェクト指向の捕らえ方に微妙な差異が存在し、それがプログラマの理解を困難にしている一面が存在する。その差異は大きく分けると次の3種類の流派として整理することができる。
C++やJavaなどは、ストラウストラップのオブジェクト指向をベースに設計された。Smalltalkではケイのオブジェクト指向を基にしている。JavaScriptやSelf、Ioなどは、プロトタイプベースのオブジェクト指向が基になっている。