How do you define "object-oriented"?

Alan Kay Alan.Kay at
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).



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 from Alan that (roughly paraphrased)
>says "I invented the term object-oriented, and C++ was not what I had in
>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