Origin of object orientation

Asked

Viewed 699 times

12

I have been working for 4 years with object orientation but to this day I have not asked myself the origin of this paradigm. What I’m trying to understand, basically, is what were the motivations for the creation of this paradigm, that is, what was intended to achieve with it.

Researching a little I read that Alan Kay thought about the paradigm making an analogy with biology:

He launched the postulate that the ideal computer should function as a living organism, that is, each "cell" would behave by relating to other cells in order to achieve an objective, however, functioning autonomously. Cells could also regroup to solve other problems or perform other functions, exchanging "chemical" messages between them.

On the other hand, books always say that the idea of object orientation is to make programming look more like the way of thinking in the real world (which I disagree with a little, because we build abstractions and not reliable copies of what we have in the real world). Others say object orientation was created to allow code reuse and modularity.

This all makes the origin of the orientation a bit hazy. What is the origin of object orientation? What were the motivations for the paradigm to be created and how the paradigm solves the problems that motivated it?

When asking about the origin of object orientation and what were the motivations I am explicitly asking the historical facts associated with object orientation and not the personal motivations of the developers to use the paradigm.

  • I always emphasize the greater expressiveness, naturally obtained, that this paradigm adds to the code. I don’t know if I’d put that as motivation, I guess more like a reflection.

  • 1

    I liked your question, but my crystal ball says it can receive closing votes as "too broad" or "mostly based on opinions". I’m not voting to close, but if you can get a head start on some kind of issue to avoid possible closing votes, that would be great.

  • It’s @Victorstafusa, I imagined it right at the time I wrote it. Do you have any suggestions as to how the question can be improved?

  • 2

    I think just make it clear that the questions "What is the origin?" and "What were the motivations?" are factual and not opinionated, regardless of the opinion of anyone (even if it is Alan Kay), in addition to being objective (it is only sufficient to answer the "what" and ready), and therefore do not invite debates.

  • Thanks @Victorstafusa, I’ve added a little paragraph making it clearer.

2 answers

6

   As noted above, when it comes to "What origin?" "Who invented?" and "Where did it come from?" there is always controversy and heated discussion.

   Depending on the point of view, the origin of the "object orientation" can be quite discussed. This answer is based on the questions that ask for a focus on the historical facts, resolution and abstraction of a given problem, and also the benefits of this paradigm in programming.

   Alan Kay (one of the creators of object-oriented language Smalltalk) created the Smalltalk making an analogy with biology:

"I thought of objects being like biological cells and / or individual computers on a network, is only able to communicate through messaging"

   However, beyond this approach, Alan Kay and cia also used and expanded the concepts of object and class" of the Simula programming language (created by Kristen Nygaard and Ole-Johan Dahl). This is where the story begins.

   Like all major evolutions, object-oriented programming also had its "origin" related to military/war issues. Kristen Nygaard was commissioned to design its country’s first nuclear reactor (Norway). In 1961 he began designing a simulation language (Simula), in the course of the project, Nygaard joins the "expert programmerOle-Johan Dahl. The Simulates is designed to be a process description language as well as programming language.

   The natural evolution of the paradigm came with the needs. In one of the simulations working that dealt with ship explosions, Nygaard and Dahl realized that they could group the ships in different categories. Each type of ship would have its own class and the class would generate its unique data and behavior.

Ole-Johan Dahl (Deeds/Honors):

  • Most important computer scientist in Norway;
  • In partnership with Kristen Nygaard, he introduced early ideas of object-oriented programming;
  • Royal Norwegian Order of St. Olav (2000) - Awarded for differentiated services for Norway and humanity;

Kristen Nygaard / Ole-Johan Dahl (Deeds/Honours):

  • ACM Turing Award (2001) - For fundamental ideas for the emergence of object-oriented programming through the design of the programming languages Simula I and Simula 67;
  • IEEE von Neumann Medal (2002) (Joined by Kristen Nygaard) - Outstanding achievements in computer science and technology;

This is just one point of view, not by far the goal of respond precisely to the origin of object orientation.



Sources:
http://foswiki.cs.uu.nl/foswiki/pub/IFIP21/Rome/O-JDahlTalk.pdf http://en.wikipedia.org/wiki/IEEE_John_von_Neumann_Medal http://en.wikipedia.org/wiki/Order_of_St._Olav http://en.wikipedia.org/wiki/ALGOL"http://en.wikipedia.org/wiki/Smalltalk" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/Smalltalk http://en.wikipedia.org/wiki/Turing_Award https://softwareengineering.stackexchange.com/questions/142327/what-did-they-call-object-oriented-programming-before-alan-kay-invented-the-term http://www.exforsys.com/tutorials/oops-concepts/the-history-of-object-oriented-programming.html

  • 1

    Good answer. But there are also those who argue that much of the OO inspiration came from Minsk’s work in the 1970s with the Language of Frames used to represent knowledge in the field of Artificial Intelligence. In fact it is as you said: controversial subject because there are many possible inspirations and a great continuous evolution over the years. :)

  • 1

    Thank you @Luizvieira :)

-4

In some contexts, the term object-oriented modeling (MOO) is preferable to the term POO. In fact, the "object-oriented" paradigm originated in the studies of cognition and influenced artificial intelligence and linguistics, given the relevance to the abstraction of real-world concepts. The MOO is considered the best strategy to reduce the "semantic gap" (the gap between the real world and its representation), and facilitates the communication of stakeholders in the model or software (e.g. the modeller and the end user) to the extent that concepts, terminology, symbols, graphics and strategies are potentially more obvious, intuitive, natural and accurate. [1] https://en.wikipedia.org/wiki/Object-orientation

Browser other questions tagged

You are not signed in. Login or sign up in order to post.