What was the development of object-oriented programming?

I have real nay-sayers here, and I'm trying to give them the reason OOP was developed in the first place. I understand that OOP is not ideal for all problems and situations, but it was developed for some reason ...

I assume some of these reasons are:

  • maintainability
  • Re usability
  • Document ability
  • Abstraction of complex technologies
  • Dynamic expansion in runtime ...
  • Perhaps some things that I don’t even know about ...

But I really do not have much to support this, and I was wondering why OOP was developed in the first place, and this is the story.

What were the people who developed OOP? What led them to develop OOP?

+7
language-agnostic oop history
source share
7 answers

I have always been of the opinion that object-oriented programming was created so that we could think about complex problems that people could understand:

Everything in the world is an object, objects have properties, and some objects can even perform actions (or perform actions on them). A.

+3
source share

Alan Kay, who coined the term “object-oriented programming,” explained his thinking several times .

In fact, he got an idea from biology - how each cell is a self-sufficient entity and interacts only with other cells through “messages”, not knowing anything about how the other cell works, and all these autonomous entities add up to a living organism. He believed that this way of sharing responsibility with a large number of entities that took care of themselves and communicated only by sending messages would facilitate the organization of programs. He also said that he sees the World Wide Web as an extension of this model.

+2
source share

One of the reasons you can contribute to the discussion is because OOP helps model the real world by using classes, functions, and properties to abstractly define specific concepts and objects. It can be argued that OOP hoped to help developers with code modeling after real processes and objects that make up a particular problem space.

+1
source share

A good book for this is Object-Oriented Software, developed by Bertrand Meyer (commonly known as the foundational text of object-oriented programming). On the Wikipedia page:

Known among its fans as “OOSC,” the book introduces object technology as an answer to basic software development issues, with particular emphasis on addressing software quality factors for correctness, reliability, extensibility, and reuse . It begins by examining software quality issues, and then introduces abstract data types as the theoretical basis for object technology and uses the basic object-oriented methods: classes, objects, community, inheritance, contract design, concurrency, and persistence. It includes extensive discussions on methodological issues.

+1
source share

Paul Graham has a good list of reasons why people love OOP:

http://www.paulgraham.com/noop.html

+1
source share

The theory aside, which really spurred the adoption of OOPS, was the emergence of Windows-based graphical interfaces.

If you are just programming a DOS or Mainframe terminal application, you really do not need OOP, of course, this can be useful, but there is no good reason to accept it. However, as soon as you start coding any wimp-based GUI, then its effective management without OOP is very difficult, especially when you go beyond a simple system.

I cut my teeth, coding the Mac back when Pascal was the default language, you had to handle your own main event loop, and such things go through the rectangles to redraw the window when it was in the background, covered by the windows in front of it. Therefore, a huge amount of even the simplest program concerned the basic infrastructure, and it was not a trivial task to keep one interface clean so that the code did not fall into tangled spaghetti. The same can be said of Windows (read the books of the early Charles Petzold programming books) and other graphical interfaces at the time.

The adoption of OOP has greatly simplified this, since OOP is a natural approach for graphical interfaces. At present, we consider this obvious and natural, but this was not always the case, and, of course, the adoption of OOP at that time was considered to be something of a big challenge for programmers. However, the result was that all new programmers have grown from OOP since the late 90s, because it is really necessary for processing graphical interfaces, as a result of which it is for the most part a standard way of coding, and therefore its use has been widely spread for interface limits.

+1
source share

I think that what motivated OOP is primarily these facts (or should I say assumptions?):

  • we naturally think in terms of objects / things
  • objects are good for capturing / modeling reality. The objects
  • can be used uniformly throughout dev. process (requirement, analysis, implementation)

Is this true, is another matter. See. We think in terms of objects .

The essence of OOP is

  • object = identity + data + behavior

What are the exact features provided by the OOP language is also another issue. See the wikipedia page.

PS: A lot of so-called object-oriented code is actually procedural code disguised as object-oriented code. The main problem with OOP, as we know it, is that it requires experience to capture cooperation between objects, when responsibility cannot be trivially assigned to one object.

0
source share

All Articles