How do you define "object-oriented"?

Kevin Fisher kgf at
Fri Apr 26 19:17:59 UTC 2002

On Fri, Apr 26, 2002 at 02:51:10PM -0400, Jarvis, Robert P. (Contingent) wrote:
> > From: Kevin Fisher [mailto:kgf at]
> > 
> > Or rather--if it's not objective right down to the smallest particle,
> > can it be called object-oriented?
> I don't think I'd go quite that far.  Back when I was starting to learn
> about OO I found a definition which I think is pretty good:
> 	A language is object-oriented if it supports
> 		1.  Encapsulation
> 		2.  Inheritance
> 		3.  Polymorphism

I certainly agree with this definition, to be sure but...

I find it hard these days to picture a truly OO language as being anything
but OO through-and-through... Hmm, and this comes from a former C++ programmer
as well!  I believe that Squeak has spoiled me for all other languages...

> By this definition C++ and Java are object-oriented even though they expose
> atomic data types.  My experience has been that it is much easier and more
> productive to work in an object-oriented language which doesn't clutter up
> the landscape with 'int's and 'char's.  On the other hand I'm known for
> being a bit dense and perhaps (despite my years of apparent success with
> 'int' and 'char'-ridden languages) I just don't get it.  Or maybe I *do* get
> it and it's the 'int' and 'char'-obsessed language designers who are
> clueless.  Beats me - I'm nearsighted and keep blundering into these tall
> things with rough brown outer coverings and occasional bits of greenery.

After spending more and more time with Smalltalk, I find myself repelled
by anything with all those 'ints' and 'chars'.  Anything that uses
"constructors" and "destructors" gives me that all too familiar facial twitch
I remember from my C++ days, so I usually run screaming from that. :)

But I guess the point is, having sampled Smalltalk it just seems to me that
the proper evolution of things (especially for something calling itself
"object oriented") should be away from atomic types like "int", "float" and
"char".  My disappointment with Python certainly stems from this.
I know that everyone has their own opinion on this, however...

> > (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. :)
> I imagine there are several ways to look at this:
> 	1.  Copying is so much easier than thinking.
> 	2.  You can spot the pioneers by the arrows in their backs.

Strange, all I could picture was the Smalltalk 'assignment arrow'. :)

> 	3.  I have taken the road less traveled, and it has made all the
> difference.
> 	4.  The shortest way to a programmer's heart is through C.

Or perhaps old habits are really hard to shake?  Couldn't the same
thing be said of, say, FORTRAN at one time?

> Again, YMMV.

These are great!  They belong in a cookie file somewhere!

> **********************************************************************
> This message and any attachments are intended for the 
> individual or entity named above. If you are not the intended
> recipient, please do not forward, copy, print, use or disclose this 
> communication to others; also please notify the sender by 
> replying to this message, and then delete it from your system. 
> The Timken Company
> **********************************************************************

More information about the Squeak-dev mailing list