OOP Origins Debate
The cluster debates the true origins and definition of object-oriented programming, contrasting Simula as the first OOP language with Alan Kay's Smalltalk-inspired vision of message passing, and their influences on C++, Java, Objective-C, and Ruby.
Activity Over Time
Top Contributors
Keywords
Sample Comments
Simula and Smalltalk were the two original OO languages. C++ firmly takes its OO capabilities from Simula (the virtual keyword literally comes from there with the same semantics), and is quite distinct from the OO flavour of Smalltalk. Objective-C, with its selector based late binding for example, is clearly Smalltalk inspired.
Sure but Smalltalk also has classes and inheritance where messages are passed between objects. Kay invented the term, but he doesn't control the design of other languages or how OOP ended being understood. Simula also proceeded Smalltalk, and it influenced the design of the C++ object system.
There has never been a "true" OO language. And if it there was, Smalltalk was not it. Alan Kay did coin the term, but Simula existed long before Smalltalk. The tree of languages that include C++, Java, and C# can be traced back to Simula while Smalltalk inspired Ruby. There is a distinct camp of "statically typed OO" (Simula and its children) and "dynamically typed OO" (Smalltalk and its children).Yet none of this is the one true OO. All of it remains a way of de
The first OOP language was Simula. Smalltalk and C++ both adopted ideas from Simula, independently. Bjarne Stroustrup was a student in Nygaard's lab, so it is absurd to suggest that C++ "reinterpreted" something. If anything, C++'s is the more pure expression of the original idea.Alan Kay gets credit for the name "object-oriented", not the concept. His own definition has varied radically over the years, insisting only lately on any importance of message pa
Look up Smalltalk for some hints. I'm not an expert on Obj-C or Smalltalk but Obj-C borrowed pretty heavily in some respects, as I understand it. It is object-oriented, but it is a substantially different paradigm from the C++/Java family.As another hint, Ruby was pretty heavily influenced by Smalltalk as well. Think about stuff like responds_to? and whatnot, where you're sending messages to objects and objects can actually intercept and react to those messages.The comparison to C++ is pre
"Object-oriented" ipso facto refers to programming using objects. Simula had objects, and they were objects in the same exact way as Smalltalk objects are objects - a bundle of state with identity and behavior. Whether the exact term "OOP" was used by Simula authors is immaterial. The usual claim is that what makes Smalltalk special is message passing as opposed to method calls, but they are obviously isomorphic.
Yes, he is probably talking about Smalltalk-style OO:https://medium.com/@richardeng/domo-arigato-mr-smalltalk-aa8...He's also the subject of this article: https://thenewstack.io/can-man-spark-renaissance-small
He neither had Smalltalk-76/80, Simula 67, Java, Python or Ruby in mind. What he understood by OO is rather "object based" in todays language.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things." – Alan KaySimula was the first language to have objects but Alan Kay's Smalltalk was what really caused it to take off and is what most OOP languages today were derived from. Today he feels he mis-named it and that he should have called it Message-Based Programming, which is what he feels should be the primary focus of languages with objects.M