top | item 28423765

(no title)

cowanon22 | 4 years ago

The paper does not specify message passing or reflection, both of which are essential to OOP. I think OOP lost its way as soon as C++ reinterpreted it in terms of only encapsulation, inheritance, and polymorphism.

According to Alan Kay (one of the creators of Smalltalk, the first OOP), message passing is more important to OOP than inheritance. If you listen to his old speeches, what he is describing sounds a lot more like microservices and VMs/containers than what most of the later languages turned it into. (He describes objects as "mini computers" that interact with each other using only public interfaces)

discuss

order

ncmncm|4 years ago

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 passing, as such. Smalltalk-72 was not OO. Smalltalk gained OO features over the time from 1972 to 1980. (Message passing has anyway always been isomorphic to function calls.)

Reflection was never described as essential to OOP. It is a feature of many languages, equally useful in all.