I'd just like to interject for a moment. What you're referring to as
Object oriented programming, is in fact, many paradigm/Oop , or as
I've recently taken to calling it, many paradigm + oop. Oop is not
an programming language unto itself, but rather another component
of a fully functioning programming language made useful by virtues of
functional programming, flow control and vital system structure
comprising a full programming
as defined by a language specification
Many developers run a modified by version of Oop every day, without
realizing it. Through a peculiar turn of events, the version of
multi paradigm which is widely used today is often called oop, and
many of its users are not aware that it is basically a flexible and
general use language, developed by the language designers.
There really is an oop, and these people are using it, but it is just
a part of the programming language they use. Oop the paradigm in
the programming language that allows for many reproudacble and manipulatable
structures. Oop is an essential part of a programming language, but
useless by itself; it can only function in the context of a complete
programming language. Oop is normally used in combination with the
rest of a programming
language: the whole language is basically multi paradigm with oop
added, or multi paradigm. All the so-called Oop languages are really
multi paradigm languages