comp.lang.ada
 help / color / mirror / Atom feed
From: ok@goanna.cs.rmit.edu.au (Richard A. O'Keefe)
Subject: Re: Interesting but sensitive topic to discuss (HELP: - OOP and CASE t
Date: 1996/11/13
Date: 1996-11-13T00:00:00+00:00	[thread overview]
Message-ID: <56bt0g$jda$1@goanna.cs.rmit.edu.au> (raw)
In-Reply-To: yf3pw1ni3tm.fsf@sabi.demon.co.uk


piercarl@sabi.demon.co.uk (Piercarlo Grandi) writes:

>The observation above is, as per your remark, strictly speaking not
>general enough; but then just saying "OO module" instead of "class"
>would give it generality.

Yes, but it would provide generality by means of obscurity and vagueness.
What, for example, is an "OO module"?  I am aware of several languages
having both objects and modules:
 Ada 95 (module=package, object=tagged record instance)
 ISO Pascal Extended with Object-Oriented Extensions to Pascal
	(module=module, object=object=pointer to extended record)
 Oberon-2
 Common-Lisp/CLOS (module=package, object=class instance)
 C++ (module=translation unit maybe, or better, namespace; object=record)
so the term "OO module" seems to mean something like "module containing OO
components".


>For whether class or prototype based, an OO program is a collection of
>(OO) modules, and values at runtime are either instances of a class or
>clones of a prototype.

(1) In Self, it's not who you are _cloned from_ that determines your
    properties, but who _your parents are_.  The nearest analogue of
    a class would be a partial function from parent slot names to
    objects, e.g. the "class" (parent*=o123, uncle*=o125, locale*=o23)

(2) The parents of an object can vary through time.

>OO programs (as opposed to their executions) do occasionally contain
>some instances or clones, but this does not justify the observation that
>"OO programs are systems of interacting **objects**".

It seems to me that there may be an equivocation involving the word
"program" here.  Even for C++, it is true that
    "the EXECUTION of a program is a system of interacting objects".
You are saying "even for a prototype based language, a program is
statically composed of classes and methods", but once again, nothing
says that an OO language has to be batch compiled.  In the static
sense which I think you have in mind, no "program" as such need ever
exist.

>While the analysis and design of an OO program may/should be based on
>some mental image of how it is going to be executed, both activities are
>really about deciding into which ``encapsulated'' concepts and modules
 ^^^^^^
>to decompose the solution to a problem, and not into which
>``interacting'' objects (even if in some languages OO modules are
>objects, and in some others objects to interact).

Is the Sun "really" a nuclear reactor or is it "really" just a big ball
of hot gas or is it "really" a source of heat and light?

I don't think anyone is denying that the "analyse, design static structure,
build static structure, light blue touch paper and stand well back" approach
is appropriate for a very large number of applications and projects.  (I am
reading this in comp.lang.ada, after all, and I wouldn't be using Ada if I
didn't think that was the right way to do some things.)  The point is that
it doesn't _have_ to be that way for _all_ applications and projects, and
there _are_ languages permitting a different mindset.  In particular, I
cannot imagine why anyone would want to rule out meta-design, where your
program _at run time_ constructs new 'OO modules' (whatever they are) with
good interfaces and starts using them.  It's not too much to say that that's
exactly how the Newton works.

-- 
Mixed Member Proportional---a *great* way to vote!
Richard A. O'Keefe; http://www.cs.rmit.edu.au/%7Eok; RMIT Comp.Sci.




  reply	other threads:[~1996-11-13  0:00 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-06  0:00 Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Dong Oh Kim
1996-11-06  0:00 ` Paul_Gover
1996-11-06  0:00   ` Snowball
1996-11-13  0:00     ` Peter Pflaum
1996-11-13  0:00       ` David N. Smith
1996-11-06  0:00   ` Jan Steinman
1996-11-07  0:00     ` Paul_Gover
1996-11-12  0:00     ` Robert C. Martin
1996-11-12  0:00       ` Alan Lovejoy
1996-11-12  0:00       ` Snowball
1996-11-15  0:00         ` Soren Skogstad Nielsen
1996-11-28  0:00         ` Piercarlo Grandi
1996-11-28  0:00         ` Piercarlo Grandi
1996-11-06  0:00   ` Alan Lovejoy
1996-11-07  0:00     ` Piercarlo Grandi
1996-11-10  0:00       ` drs
1996-11-12  0:00         ` Piercarlo Grandi
1996-11-10  0:00       ` Vlastimil Adamovsky
1996-11-11  0:00         ` Piercarlo Grandi
1996-11-11  0:00           ` Anthony Menio
1996-11-18  0:00             ` Piercarlo Grandi
1996-11-20  0:00               ` Anthony Menio
1996-11-27  0:00                 ` Piercarlo Grandi
1996-11-12  0:00           ` Anthony Menio
1996-11-18  0:00             ` Piercarlo Grandi
1996-11-19  0:00               ` Anthony Menio
1996-11-27  0:00                 ` Piercarlo Grandi
1996-11-11  0:00       ` Daniel Drasin
1996-11-12  0:00         ` Anthony Menio
1996-11-08  0:00     ` Paul_Gover
1996-11-08  0:00       ` Alan Lovejoy
     [not found]         ` <6KZQfjK-3RB@herold.franken.de>
1996-11-10  0:00           ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Chris
1996-11-10  0:00             ` Vlastimil Adamovsky
1996-11-11  0:00         ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Bill Gooch
1996-11-12  0:00           ` Jan Steinman
1996-11-12  0:00             ` Alan Lovejoy
1996-11-13  0:00               ` Nick Thurn
1996-11-13  0:00                 ` Alan Lovejoy
1996-11-14  0:00                   ` Nick Thurn
1996-11-12  0:00           ` Alan Lovejoy
1996-11-13  0:00             ` Ell
1996-11-13  0:00             ` Nick Thurn
1996-11-14  0:00             ` Bill Gooch
1996-11-19  0:00               ` Tim Ottinger
1996-11-08  0:00       ` Ell
1996-11-08  0:00         ` Alan Lovejoy
1996-11-13  0:00           ` Ell
1996-11-10  0:00       ` vlad
1996-11-12  0:00     ` Robert C. Martin
1996-11-12  0:00       ` Alan Lovejoy
1996-11-14  0:00         ` David N. Smith
1996-11-14  0:00           ` Bill Gooch
1996-11-20  0:00         ` Robert C. Martin
1996-11-20  0:00           ` Robert Dewar
1996-11-20  0:00           ` Michael Malak
1996-11-20  0:00             ` Robert Dewar
1996-11-26  0:00           ` Tucker Taft
1996-12-03  0:00             ` Robert C. Martin
1996-12-08  0:00               ` Tucker Taft
1996-11-07  0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-08  0:00   ` Richard A. O'Keefe
1996-11-09  0:00     ` Piercarlo Grandi
1996-11-13  0:00       ` Richard A. O'Keefe [this message]
1996-11-27  0:00         ` Piercarlo Grandi
1996-11-08  0:00 ` Alan Lovejoy
1996-11-08  0:00 ` Jon S Anthony
1996-11-08  0:00 ` Joachim Durchholz
1996-11-12  0:00   ` Alaric B. Williams
1996-11-13  0:00   ` Richard A. O'Keefe
1996-11-08  0:00 ` Nick Thurn
1996-11-08  0:00   ` Alan Lovejoy
1996-11-11  0:00     ` Nick Thurn
1996-11-11  0:00       ` Paul_Gover
1996-11-11  0:00         ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) David N. Smith
1996-11-12  0:00           ` Anthony Menio
1996-11-11  0:00         ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Anthony Menio
1996-11-11  0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Cesar A. Gonzalez Perez
1996-11-12  0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-20  0:00   ` Piercarlo Grandi
replies disabled

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