1970年代から1980年代にかけて,Xeroxのパロアルト研究所(PARC)で,個人用 のパーソナルコンピュータをGUI(グラフィカル・ユーザ・インタフェース)で 操作するための研究が行われたが,その際に用いられた Smalltalk-80 におい て,現在のオブジェクト指向言語の持つ要素のほとんどが考案された.しかし, Smalltalk-80 自体は高い値段を設定したこと,マシンパワー(メモリ容量,速 度)が1980年代後半においても不十分だったため,それほど一般的にならなかっ た.
Smalltalk-80そのものは流行らなかったが,GUIプログラムの記述にオブジェ クト指向が向いているという認識は広まった.そのため,1970年の始めに作ら れ,1980年代にようやく一般的に使われるようになったC言語にオブジェクト 指向のための拡張を施そうという試みが1980年代半ばころから,いくつもおこ なわれた.Modula-C, Objective-C など,さまざまあったが,その中で生き残っ たのが C++ である.C++ は,実行効率を重視して,またC言語の上位互換の形 にしたために生き残ることができたが,反面で,
C言語以外にも既存の言語をオブジェクト指向にするための拡張を施す試みは いくつもある.Common Lispをベースにした CLOS(Common Lisp Object System) などは,有名である.
Java言語は,オブジェクト指向言語として見た時,Smalltalk-80の持つオブ ジェクト指向言語としての純粋さと,C++言語の持つ実行効率を重視した設計の ほぼ中間に位置する.