How do you define "object-oriented"?

Chris Becker chb99 at msn.com
Fri Apr 26 23:17:03 UTC 2002


If you spend enough time developing in languages like C and C++, BASIC,
Pascal, FORTRAN, and COBOL, it changes the way you think. Instead of
thinking about the real-world entities that you're trying to represent, you
end up jamming these notions into whatever language structure will hold
them. After a while, instead of seeing real-world objects when you look out
your window, you start seeing data structures and pointers. Your thought
processes begin to revolve around the language and its constructs rather
than the objects you're trying to model. You spend an inordinate amount of
time re-engineering things that are very simple in real life.

The term "object-oriented" is so simple, it amazes me how it's become so
complicated to explain! I guess like so many other terms: the more it gets
used, the more it gets abused. Pretty soon it's cliché. Anyway, my
understanding of an object-oriented language is one where the central focus
is the objects themselves, *not* the compiler or interpreter and all of its
syntactic rules. Each object should define its own communication protocol.
The development environment should merely facilitate your communication with
these objects; it shouldn't force you to use a uniform or restrictive
protocol. With true object-orientation, writing a program should merely be
telling your objects what to do.

If you find yourself spending a lot of time converting your ideas into
constructs that the language can work with, or if you have to buy books just
to learn the syntax of the language itself, then the language isn't
object-oriented. It's language-oriented!  :-P  :-)

Chris Becker


-----Original Message-----
From:	squeak-dev-admin at lists.squeakfoundation.org
[mailto:squeak-dev-admin at lists.squeakfoundation.org] On Behalf Of Kevin
Fisher
Sent:	Friday, April 26, 2002 1:10 PM
To:	squeak-dev
Subject:	How do you define "object-oriented"?

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