How do you define "object-oriented"?
Jecel Assumpcao Jr
jecel at merlintec.com
Fri Apr 26 18:58:10 UTC 2002
On Friday 26 April 2002 20:33, Dan Rozenfarb wrote:
> > A language is object-oriented if it supports
> > 1. Encapsulation
> > 2. Inheritance
> > 3. Polymorphism
>
> Self hasn't Inheritance, at least Class Inheritance
> (the one implied in this Wegner's definition), but
> delegation. And I consider it VERY object oriented.
Wegner put (at least in his original Byte article) languages without
classes in a separate "object based" category. But my opinion is the
same as yours. In addition, I don't see any practical difference
between "inheritance" and "delegation" even though I have read many
papers about the subject.
Smalltalk-72 and -74 didn't have inheritance, and neither did Kevo. I
don't know about Simula 67.
But I prefer not to fight for any particular meaning of "OO" (having
learned my lesson in the "hacker" wars). Whatever Alan Kay meant with
this term, people extended it to include Simula 67 (since he admitted
having been inspired by it) and C++ is very much in the spirit of that
old language. And if that is OO, then how could I argue that Java or
Python aren't?
> In my opinion, Object-orientation is: Objects
> communicating through message passing.
That sounds good.
> [No compile-TIME, No edit-TIME, No NON-OBJECTs, No classes]
> With this definition, Smalltalk is not *pure* OO.
Because of the classes? See "Smalltalk with Examplars" or CoDA for
Smalltalks with classless objects.
Wilf R. LaLonde, Dave A. Thomas, John R. Pugh:
"An Exemplar Based Smalltalk". In [OOPSLA 86], pp. 322-330.
http://web.yl.is.s.u-tokyo.ac.jp/members/jeff/research/coda.html
-- Jecel
More information about the Squeak-dev
mailing list
|