Netesin D., Segeda N., Kaliberda N.

Oles Honchar Dnipropetrovsk National University


All programming languages is only a tool for solving of well-defined range of tasks. The choice of the tool and the way of operating with it is determined basically by specific of the problem, requirements for it and by all available resources –first of all human and financial.

OOP was created as the result of ideology of procedure programming (1)), where data and routines (procedures, functions) of their treatment are not formally linked. For further development of object-oriented programming concepts, the meanings of EVENT are very important ( so-called event-oriented programming (2)) and the component (component programming, CPC (3)).

The first programming language, which proposed the principles of object-orientation was Simula (1967). This programming language offered a truly revolutionary ideas, such as: objects, classes, virtual methods, etc. However, most of the concepts were developed by Alan Keyem and Dan Ingalls in the language Smalltalk (1970). It language that became the first widespread used object-oriented programming language.

• Procedure-driven programming (1) is the paradigm of programing based on the conception of the procedure call. Procedure, also known as subroutines, methods, procedures or functions simply contain a sequence of steps for implementation.

• Event- oriented programming (2) (SOP) is a paradigm of programing in which implementation of the program is determined by events: the user's steps, messages of other programs and flows, operating system events.

• Component-oriented programming (COP)(3) is a set of classes and language constructions classified by common attribute.

According to Alan Kay, creator of Smalltalk, who is considered to be one of the founders of the PLO, an object-oriented approach is based on the following set of main principles:

1. Everything is considered to be an object.

2. All calculations are carried out by the interaction (data exchange) between objects in which one object requires another object to perform some action. Every object has independent memory, which consists of other objects.

3. Each object is the representive of a class that expresses the common properties of objects (such as integers or lists).

At the same time, the PLO has a number of disadvantages and shortcomings:

1. It is necessary to understand the basic concepts, such as classes, inheritance, and dynamic binding (linking).

2. Reusable requires the programmer to meet with large class libraries

3. Class designing is far more complex than their using.

4. It is very difficult to study classes, not being able to "touch" them.

Alexander Stepanov is an fervent critic of OOP(well-known expert on programming, which helped to create the C + + with Bjarne Stroustrup), completely disillusioned with the OOP paradigm, in particular, he writes:
"I am sure that the PLO is methodologically incorrect. It begins from the the construction of classes. It is the same as mathematicians would start with axioms. But nobody really begins with axioms, everybody begin with the evidence. Only when you found a set of suitable evidences, only on this basis an axiom could appears. So you only could finish with axiom in math».

No need to look at programming from a purely technical point of view programmers solve business challenges and problems of the people first, and what way and by what tools they do it care customers at last.