Многие современные языки специально созданы для облегчения объектно-ориентирова<wbr />нного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентир<wbr />ованного языка и наоборот, применение объектно-ориентирова<wbr />нного языка вовсе не означает, что код автоматически становится объектно-ориентирова<wbr />нным.
Одни языки отвечают принципам ООП в полной мере — в них все основные элементы являются объектами, имеющими состояние и связанные методы. Примеры подобных языков — Smalltalk, Eiffel.
Существуют гибридные языки, совмещающие объектную подсистему в целостном виде с подсистемами других парадигм как «два и более языка в одном», позволяющие совмещать в одной программе объектные модели с иными, и размывающие грань между объектно-ориентирова<wbr />нной и другими парадигмами за счёт нестандартных возможностей, балансирующих между ООП и другими парадигмами. Примеры таких языков: CLOS, Dylan, OCaml, Python, Ruby, Objective-C.
Однако, наиболее распространены языки, включающие средства эмуляции объектной модели поверх более традиционной императивной семантики. Алан Кэй назвал такие языки «склеиванием возможностей» в противовес «чистоте стиля» языков, воплощающих некую парадигму непосредственно. Примеры таких языков — Симула, C++, Visual Basic, Delphi, Модула, Модула-2, Java, C#, PHP.