How do you define "object-oriented"?
Alan Kay
Alan.Kay at squeakland.org
Fri Apr 26 22:28:33 UTC 2002
Well, the meanings of terms change over time, and as my old friend
Rich Gold likes to say, terms are also "colonized" for political and
fad reasons. Personally, I started to regret having coined this
phrase almost immediately, in part because "object-oriented" seemed
too static. Simula-I used the term "process" to cover both what we
mean by "object" and "instance" (since classes were not themselves
objects). But this use of "process" was a little different from the
already in use definition in the US.
To me, in the beginning, what seemed most important were the
encapsulation, only message passing (which allows the algebraic
properties of polymorphism), everything made from the basic building
block, etc. Doing this right allows some of the other useful
abstraction mechanisms to be built. But the abstraction ideas have
always been a problem, in that nothing as "clearly sweet" as objects
has yet emerged. This has led to quite a profusion of half good ideas
about classes or prototypes, inheritance or not or multiple or
single, etc.
Finally, my original biology inspired ideas were completely
intertwined with late-binding (where I had LISP as a beautiful model
of how to generally go about things).
Cheers,
Alan
P.S. Real pioneers have the arrows in their chests!
-------
At 2:10 PM -0400 4/26/02, Kevin Fisher wrote:
>I have a bit of a question...I'm just sitting down to learn Python right
>now and I'm finding it a bit too C/C++ like for my liking. What strikes
>me about Python is it's claim of "object orientation"--and yet, it has
>atomic types like 'int' and 'char' that are not objects (shades of
>C++ and Java).
>
>I've read the quote on smalltalk.org from Alan that (roughly paraphrased)
>says "I invented the term object-oriented, and C++ was not what I had in
>mind."
>
>Is it safe to say that something like Python is not truly object-oriented?
>Or rather--if it's not objective right down to the smallest particle,
>can it be called object-oriented? I realize this could be a somewhat
>flameworthy question...but I don't mean it to incite flames.
>
>
>(and then there's the other question about why all new languages go out of
>their way to be so C-like...a personal beef of mine. :)
--
More information about the Squeak-dev
mailing list
|