How do you define "object-oriented"?

Kevin G. Fisher kgf at golden.net
Sun Apr 28 00:31:52 UTC 2002


Very interesting analogy!

I've always looked at it like this:
Programming is like painting...you have an idea in your head of what
you want to paint, and the computer is like a canvas.

The programming language is your paintbrush.  The thing that bothers me
about some "modern" languages (like C, especially) is that the paintbrush
is so complex, you spend more time learning how to use it than you do
actually painting your masterpiece.

Squeak certainly lets me get to the painting right away!


On Fri, Apr 26, 2002 at 07:17:03PM -0400, Chris Becker wrote:
> 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