3 ms·
Correct. Although Smalltalk is generally regarded as the first one because the concept "object orientation" was first used in it. Still, the big thing in Small
by bromagosa 13y ago
Correct. Although Smalltalk is generally regarded as the first one because the concept "object orientation" was first used in it.
Still, the big thing in Smalltalk are not objects, but messages. That's something many later OO languages missed on completely.
From Kay:
«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.»
- vidarh 13y agoI think the reason many later OO languages "missed" messages completely is because the distinction makes little sense in more static languages that lacks a way to dynamically call a method/send a message.
- yvdriess 13y agoAnd incidentally, dynamic dispatching is recognised as the key feature of OO: (Cook 2009) Object-oriented programming is successful in part because its key technical characteristic—dynamic dispatch-is essential to supporting independent, interoperating extensions; and because interoperable extension is in turn essential to the reuse of architectural code (as in frameworks), and more broadly to the design of modern software ecosystems.
- vidarh 13y agoI'm not sure if you're agreeing or disagreeing with me. Dynamic dispatch is supported by most statically typed OO languages. C++ virtual member functions are dynamic dispatch. So indeed, dynamic dispatch is one of the key features that makes the distinction between calling methods and sending messages sufficiently un-important that static OO languages are still useful. What was (perhaps too imprecisely) referred to in my comment above is late/dynamic binding.
- seanmcdirmid 13y agoWhy would you take Kay's definition of OOP as gospel. To me, OOP is all about thinking and coding in terms of object metaphors. Everything else is a supporting detail.
- bromagosa 13y agoWell, I wouldn't take it as gospel, but as a definition coming from the person who actually invented and first used this term.
- seanmcdirmid 13y agoAlan Kay is very opinionated, I respect his work but don't take him as a god. There are plenty of other people who did much work in OOP in the 70s and 80s who deserve around similar credits for starting up this field, and let's not forget the Scandinavians who actually invented it.