On Fri, Jul 9, 2010 at 10:15 PM, Robert K.
The key word for this is “encapsulation”. I believe it is the most
IMHO inheritance is overrated (or maybe overused). Often people turn to
inheritance where composition would be a better choice. But I agree, this
is another important aspect of OO.
There are (at least) two interesting posts on this on Rick Denatale’s
Like A Duck, in which (amongst other things) Rick quotes Alan Kay:
I’ve written before in this blog about how the meaning of the term
“object-oriented programming” got hijacked from it’s original meaning.
example I go into this in some length in my mini-memoirs. [see link
I recently ran into an interesting site with links to “Classical
Science Texts”, which in turn led me to this e-mail exchange with Alan
on the meaning of OOP from July of 2003. This exchange gives support,
details, for my description of Kay’s concept of what Object-Oriented
Programming was supposed to mean.
One of the things which always attracted me to Smalltalk was that it
encapsulation above all else. As Alan Kay noted in his memoir about the
origins of Smalltalk, his original conception of object-oriented
was that software should be composed of objects which were, in effect,
little computers themselves, which encapsulated both data and behavior,
hid the implementation of both from other objects, with objects
via sending messages to each other and replying. This uniform object
separates languages like Smalltalk and Ruby from other â€œobject-orientedâ€
languages. The various versions of Smalltalk all shared this model,
they varied as to some of the semantics of message sending and
The idea of classes and inheritance as a way of factoring implementation
actually a rather late addition to Smalltalk. Although Kay acknowledges
Simula language, which also lacked classes and inheritance, as one of
influences on his thinking leading up to Smalltalk, itâ€™s been a popular
misconception that the better known Simula-67 was his real influence,
Smalltalk and Simula actually evolved independently.
Kayâ€™s term â€œobject-orientedâ€ got hijacked when Peter Wegner published
entitled â€œDimensions of Object Based Language Designâ€ at the second
conference in which he defined â€œobject-orientedâ€ as â€œobjects + classes +