Eiffel Bertranda Meyera był wczesnym przykładem dość udanego języka spełniającego te założenia; obecnie został on w zasadzie całkowicie zastąpiony przez Javę.

Podobnie, jak programowanie funkcyjne doprowadziło do udoskonalenia technik takich, jak programowanie strukturalne, do współczesnych metod projektowania oprogramowania obiektowego zaliczają się takie usprawnienia, jak wzorce projektowe (ang. design patterns), design by contract i języki modelowania (np. UML).

Obiektowość rozprzestrzeniła się dość znacznie, jednak zwykle w systemach hybrydowych, w połączeniu z programowaniem niskopoziomowym (asembler), funkcyjnym (OCaml, niektóre dialekty Lispu), sieciowym (Java), skryptowym (Perl, Python, Ruby) itd. Systemy czysto obiektowe jak Smalltalk nie znalazły zbyt szerokiego zastosowania.

Podział Można wyróżnić dwa zasadnicze podtypy programowania obiektowego: Programowanie oparte na klasach – definiowane są klasy, czyli typy zmiennych określające dopuszczalny zestaw pól i metod obiektu, a następnie tworzone są obiekty tych klas, czyli zmienne (w uproszczeniu) tych typów.