0
$\begingroup$

Why there aren't any famous programming languages that implement what Alan Kay considers to be "real OOP"?

Is it because the "modern OOP" that exists in programming languages like C++ and C# and Java are "better" than "real OOP", or are there other reasons?

$\endgroup$
4
  • 2
    $\begingroup$ Question about "famous" language is not well suited here. Could you give reference what Alan Kay considers real OOP? Do you count smalltalk as famous language? $\endgroup$
    – Evil
    Jun 1 '19 at 4:31
  • 1
    $\begingroup$ Reference, reference and reference. Could you give reference to "there aren't any famous programming languages that implement what Alan Kay considers to be 'real OOP'"? $\endgroup$
    – John L.
    Jun 1 '19 at 4:56
  • 1
    $\begingroup$ It would be good to know what Alan Kay considers to be "real OOP". But also consider that attitudes change - what was considered important for OOP in the 1990s or 2000s is considered much less important in 2019. $\endgroup$
    – gnasher729
    Jun 1 '19 at 11:21
  • $\begingroup$ Yes please add a reference to what Alan said, and to some non-famous languages. $\endgroup$ Jun 1 '19 at 21:35
1
$\begingroup$

"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them." - Alan Kay.
I would like to point that there is no single evidence of term OOP being coined by Alan Kay (if you find one, please share).

About C++ Alan gave statement: "I invented the term object-oriented, and I can tell you that C++ wasn't what I had in mind".

Other languages that may fall into "real OOP" is self programming language and probably Squeak and Objective-C.

When languages switched from messages to params passing, becoming bidirectional, it broke initial assumptions. Alan have pointed flaws in Simula design, so this one also do not count.

It is impossible to say that some languages are "better" than others, but being "real OOP" according to definition is some road taken by one influential author. Term OOP and class based programming was introduced in Simula, long before "real OOP" was supposedly coined.

All modern languages took other road and "modern OOP" is more down-to-earth, no asynchronous agents passing messages, microservices with own memory, everything being object by default.

Since there are performance hits in every step and there is no single reference gathering what it should do beside notes like actor-based programming is a way to go, because programmers should consider interactions of objects and interactions with users, we can safely assume "real OOP" by Alan Kay is only about road taken by him and not really implementable by others, so only smalltalk and squeak may be truly covered and other languages followed more pragmatic, expressive and performant way.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.