No já se na školeních setkal, že v tom je dost hokej. Něco jiného tvrdí Javisti, protože jsou ovlivněni class-based OOP Javy s rozhraními. Něco trošku jiného lidi od C++ a otázka je, co si myslet o JavaScriptu a Pythonu. Podle mě to jsou OOP jazyky, i když například "encapsulation" se tam dělá dost přes ruku. Na druhou stranu Object Pascal má u tříd dokonce pět typů přístupu: public, private, strictly private, protected, published - znamená to, že má vlastnost "encapsulation" implementovanou na vyšší úrovni, nebo je "encapsulation" pouze obecnější (tvárnější) koncept?
A možná bráno do důsledků - je jakýkoli jazyk umožňující přístup k atributům objektů vůbec objektový ve smyslu, že podporuje "encapsulation" (původní OOP s něčím takovým explicitně vůbec nepočítá, protože se veškerá komunikace s objektem odehrává pomocí zpráv).
Taky jsou zmatky ohledně polymorfismu, kde lidi okolo Javy a C++ často dávají rovnítko polymorfismus==subtypový polymorfismus (a přiznám se, že na pohovorech se ptáme právě na toto a jen málokdo to dále rozvine). Jenže ten pojem je obecnější.
Takže termín OOP je bohužel tvárný