comp.lang.ada
 help / color / mirror / Atom feed
From: John G. Volan <John_Volan@ccmail.dayton.saic.com>
Subject: Re: Comments on generic stack?
Date: 1996/03/21
Date: 1996-03-21T00:00:00+00:00	[thread overview]
Message-ID: <4ishik$3ja@dayuc.dayton.saic.com> (raw)
In-Reply-To: milodDoKr88.876@netcom.com

In article <milodDoKr88.876@netcom.com> John DiCamillo, milod@netcom.com
writes:
>John G. Volan <John_Volan@ccmail.dayton.saic.com> writes:
>
>[a pretty darn good analysis of object vs. value types deleted]
>
>>(Indeed, it's my humble (and perhaps radical) opinion that the very term
>>"object-oriented" is a misnomer.  The paradigm that everybody is so
>>gung-ho about these days should have been called "*CLASS*-oriented"
>>programming.  A programming language could hypothetically give you
>>_objects_ without necessarily giving you _classes_ as well.
>
>Not hypothetically, it's been done: see Self, Cecil, and Obliq.

I knew that. No, really, I did, I did!  :-)

Seriously though, I had a feeling that someone would bring up
prototype/delegation-based languages.  However, what I really had in
mind was a hypothetical language that allowed you to encapsulate state
data together with state-changing operations, but that lacked any
notion of types/classes/prototypes. It would be something like a
brain-damaged Ada with packages but no record types. A package with
variables hidden in its body can act as a sort of "object", but it
would be a one-of-a-kind thing.  You wouldn't get any sense of having
many instances sharing common behavior and structural layout.  Yet
you'd still be able to claim you had a language that gave you
"objects."

>Given your analysis of object vs. value types, you might enjoy
>reading the Obliq paper -- Obliq is a distributed scripting
>language in which objects behave pretty much as you described
>them.  Obliq objects are all 'network objects' which have not
>just state but *location* in a distributed computing environment.
>Objects can not be assigned, but they can be *cloned*, even
>from one machine to another across a network.

Sounds interesting enough ... how about posting a pointer to this?

>>It's the
>>_classes_, and the relationships between them, that give you all that
>>juicy inheritance and polymorphism.)
>
>Oh, and you were doing so well, too.  Prototypic object-oriented
>languages frequently provide inheritance and polymorphism without
>classes.  Some languages implement inheritance through 'delegation'
>and effectively allow objects to change their 'type' at run time
>by redirecting a 'parent' pointer.

I guess what I was trying to say was that for those languages that do
use classes (Ada95, C++, Eiffel, Smalltalk, etc.) it's the classes, not
the objects, that make things so "sexy."  Likewise, you could say that
the sexy features of prototype-oriented languages are the prototyping
and delegation mechanisms; the "objects" by themselves are more prosaic.

------------------------------------------------------------------------
Internet.Usenet.Put_Signature
( Name => "John G. Volan", E_Mail => "John_Volan@dayton.saic.com",
  Favorite_Slogan => "Ada95: The *FIRST* International-Standard OOPL",
  Humorous_Disclaimer => "These opinions are undefined by SAIC, so" &
    "any use would be erroneous ... or is that a bounded error now?" );
------------------------------------------------------------------------




  reply	other threads:[~1996-03-21  0:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4i6l2t$j1q@dmsoproto.ida.org>
1996-03-15  0:00 ` Comments on generic stack? Michel Gauthier
1996-03-17  0:00   ` David Wheeler
1996-03-20  0:00   ` "Object" types vs. "Value" types John G. Volan
1996-03-20  0:00     ` John DiCamillo
1996-03-21  0:00       ` John G. Volan [this message]
1996-03-21  0:00     ` david scott gibson
1996-03-25  0:00       ` John G. Volan
1996-03-28  0:00         ` david scott gibson
     [not found] <199603141053.LAA21095@email.enst.fr>
1996-03-17  0:00 ` Comments on generic stack? David Wheeler
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox