Концепція об'єктно-орієнтованого програмування історично пов'язана з концепцією універсальної мови програмування, яка інтенсивно розроблялася в 50-60-х роках XX ст. Однією з таких була мова моделювання Simula-67, створена так, що вона дозволяла створювати спеціалізовані мови як ї ї підмножини. Засобом для створення спеціалізованих мов слугував механізм класів, об'єкти яких використовувалися в програмах. Окрім цього, в мові Simula-67 за допомогою префіксів, по суті, забезпечувався механізм спадковості. Повністю концепція об'єктно-орієнтованої мови і відповідний метод програмування були реалізовані в мові Smalltalk 80. До того ж, реалізовано концепцію було не розширенням засобів процедурного (підпрограмного) рівня інкапсуляції мови програмування, як це передбачено в більшості мов (C++, Java, С#, ADA95, ОЬегоп), а створенням суто об'єктно-орієнтованого середовища програмування.