# Object Oriented Programming Also known by its acronym OOP (**POO** in Spanish for *Programación Orientada a Objectos*) is a programming paradigm. OOP is split between two "schools" of design: Simula-style OOP and [Smalltalk](smalltalk.md)-style OOP. TODO ## Simula-style OOP Most popular languages that have OOP have it in the Simula form. Some of these languages are: - [C++](cpp.md) - [Java](java.md) - [JavaScript](javascript.md) - [Python](python.md) - ... ## Smalltalk-style OOP (message passing) In Smalltalk-style OOP, objects communicate with each other by means of message passing. This allows for greater dynamism, something that on Simula-style OOP can be archived with virtual methods. Some languages based on or inspired by Smalltalk-style OOP are: - Objective-C: some [C](c.md)-Smalltalk chimera; similar to C++ but using message passing instead of method calling. - [Common Lisp's](common_lisp.md) CLOS - ...