Conversation started Oct 6, 2017 at 21:26.
jrh
jrh
Oct 6, 2017 21:26
indirectly, it had a use in that it caused a considerable number of programmers to really revisit the topic and got a very different result than last time, which is interesting
is it organized? No, not really, and I can understand why you'd think it would be useless, though there really is a bizarre gap between Kay's OOP and C++'s OOP, for example. Strangely enough it was never even mentioned in Stroustrup's "Design and evolution of C++"
Probably a long shot but if the C++ committee, the creators of Java, and the C# language maintainers got together and decided what parts of Smalltalk they really wanted to inherit (conceptually), I'd find that really interesting.
It's sort of a subtle distinction, but is C++ a variant on Kay's OOP or is it an implementation of it?
I've been thinking about this topic on and off for the past 7 years or so
Maybe at some point I should just write some e-mails and go direct to the source instead of waiting for somebody else to write about it
 
11 hours later…
Oct 7, 2017 08:47
I'm voting to close this question as off-topic because questions about general design principles are more appropriate for softwareengineering.stackexchange.com. — Barmar 44 secs ago
 
1 hour later…
Oct 7, 2017 09:56
@jrh The gap between Alan Kay style OOP and C++ style OOP is because they share a common ancestor: the oft-forgotten Simula, an Algol-style language for concurrent system simulation. During the development of Simula II the developers more or less accidentally stumbled on the concepts of classes and inheritance. See the paper “The Development of the Simula Languages” for a detailed history.
Kay took the Simula concepts and embedded them into a dynamic, interactive, Lisp-style system: Smalltalk. That served as a testbed for many OOP techniques and related concepts, such as prototypical inheritance, mixins, traits, OOP GUIs, ….
Stroustrup took C and added Simula-style classes: C++ was born. C++ seems fairly alien compared to other OO languages because C is a bare-bones, unsafe systems language without GC. Most C++ classes are not OOP classes but just record types or modules. C++ also has a couple unique innovations such as RAII or templates that lead to a different programming style.
Java combines the popular syntax of C++ with a more flexible Smalltalk-style object model (e.g. support for reflection!). The HotSpot JVM actually started its life as a Smalltalk VM.
Oct 7, 2017 10:44
SO is the site for posting code and asking for help with that code, not for asking general questions. Maybe this is the wrong stackexchange site for your goal and would the question be better for softwareengineering stackexchangeM. le Rutte 27 secs ago
 
3 hours later…
jrh
jrh
Oct 7, 2017 13:19
@amon interesting, I should try to find a Simula compiler to play around with
 
Conversation ended Oct 7, 2017 at 13:19.