Object Oriented Programming As a Paradigm
There has been debate about the proper definition to give to object oriented programming. There has also been some debate about the primary idea behind the concept. In a nutshell, object oriented programming is the technique of writing application text that is split into a number of modules.
Object oriented programming is a new framework which is much different from the programming methods that have been used in the past. In fact, the concepts which have been created by OOP are so powerful that they are said by some to be creating a new revolution in programming.
Originally, object oriented programming was merely the subject of research. However, powerful system architectures were built based on it, and were compatible with operating systems and central processing units. Many people believe that object oriented programming was derived from the concept of an "object" that is commonly associated with grammar. Traditionally, software has also placed an emphasis on the subject. The components that make up a subject tend to be complex, and programming languages which are subject-oriented tend to be complex as well. To solve these problems, developers started looking at objects instead of subjects.
Doing this allowed the field of programming to move in a different direction. Instead of taking an approach which is subject-oriented, researchers decided to take an approach which is object-oriented. For example, in the object-oriented approach, the verb within an application statement will always be connected to an object. Another important attribute of object oriented programming is the way in which subtypes are processed within data types. The data of an object is important when it comes to constraints which have been set by the programmer. When a datatype is blocked by a constraint, it will be a subtype of the datatype that does not have a constraint. The constraints can be preserved by the methods which are connected to the data.
A data constraint is something that can either be expected by the programmer, or it may be declared. No matter which option is used, an object oriented programming language will create the structures that will make sure the constraints and assumptions are retained by only a certain part of the application. The documentation that is available on most object oriented programs will provide information about assumptions and constraints. Object oriented programming has also been used to advertise a number of products. Because of this OOP has a strong connection to marketing.
The vast majority of object oriented programming languages use a philosophy that is not as general as the definition of OOP. The terminology that is used will separate object based programming from programming that is object oriented. Abstraction is a term that is important for OOP, but it is not specific to this programming approach. There are a number of other programming approaches that use abstraction as well. While reusability is a concept that has often be associated with object oriented programming, it has existed since the 1950s, long before OOP was developed.
Many experts choose to refer to OOP has being a paradigm instead of a method of programming. The reason for this is because they point out that object oriented programming can alter the way in which software can be developed. Object oriented programming can literally change the way developers view software. Object oriented programming places an emphasis on the design of a system as well as the programming. The system must define the objects that interact with it. Because of encapsulation, the code that is performing the task is not important to the object, and it is also not important to anyone that uses the object.
There are a number of connections that have been found between system theory and OOP. While system theory places an emphasis on the system, OOP places an emphasis on the objects that make up a system. One characteristic which is found with many OOP languages is message passing programming abilities. It is not important how a computation is set up. However, an emphasis is placed on how text is split into modules. Object oriented programming languages place an importance on the code within a program. The computation model is insignificant. Many people make the mistake of confusing the Actor model with OOP, but they are different concepts.