copy yourself ?

Richard A. O'Keefe ok at cs.otago.ac.nz
Sun May 25 23:40:08 UTC 2003


diegogomezdeck at consultar.com thinks that computational objects
are, or should be, like physical objects.
	The Object Orientation paradigm is good just because the
	"computational objects" are similar to real objects (or objects we
	perceive as reals (to be matrix-compatible)).
	
At various times I've learned, or tried to learn, Simula 67, Smalltalk,
T, CLOS, ECMAScript, Objective C, C++, Object Pascal, NewtonScript
(total failure there, I'm afraid; maybe if I'd had a Newton to play with
it would have been different), Eiffel, Sather, Cecil, Self, XLispStat,
and a couple of others remembered with less fondness.  I've read (or
tried to read) OOPSLA proceedings until my head buzzed.  I think I have
a fair idea of what the object orientation paradigm is about.  (That is
NOT to claim any skill in its application or any hand in its advancement;
I am claiming knowledge, not ability.)  And for what it's worth, I have
an MSc in underwater acoustics, so I have _some_ academic as well as
practical idea of how physical objects behave.

And I honestly cannot see ANY useful resemblance between
computational objects and real physical objects.

Computational objects do not have mass; do not occupy space; do not
emit or absorb photons (so don't have colour); it makes no sense to
ask about the velocity of sound through a Workspace or the tension
in a String.

Even in Morphic, which gives a pretty good illusion of reality,
if you "drop" a morph, it doesn't fall.  The "shadows" we see on the
screen are totally unaffected by the location of light sources in the
room.

	The gap between the virtual-objects and the real ones is not zero,

"not zero" appears to be a euphemism for "mindbogglingly immense".

	but we have to go in the direction of reducing the gap and
	not in the direction of make our virtual-objects more different.
	
Why?  If I write a letter to my mother on paper with ink, I will have
*no* success trying to push it through a wire.  If I send her e-mail,
she'll get it in minutes through that same wire which was totally
impermeable to paper.  Making e-messages more like physical objects
would make them *less* useful, not *more*.

	We're playing with concrete objects and we're creating
	abtraction/reduction to classify to univers from our first
	minutes as human beings.
	
To the extent that this is true, so what?

	Everybody (including all the smalltalk experts) are much more
	trained in working with real objects than with virtual ones
	(computational objects in your words).

And we are arguably much more trained in working with *social*
concepts than with physical ones.  Babies are born with nontrivial
social skills; far better than their physical skills.  Computational
objects at present resemble *social* entities much more than they do
*physical* entities.  They are like language, and music, not
billiard balls and rocks.  If my children are any guide, they are
fluent talkers (that is, good at dealing with social and "virtual"
concepts) before they stop bumping into doors.

	If you agree with me in the last sentence surely we'll agree on
	the big convenience of trying to emulate the real objects.

Not in the least.  The fact that I've been breating air longer than
I've been typing does not in the least imply that typing should be
made more like breathing.

Emulating physical objects is a *useful* thing to do *some of the time*.

But take information retrieval, a very common task for computers.
What physical objects, other than human beings, are relevant to that
task?  How would making some of the components subject to emulated
gravity, or emulated proton decay, or emulated combustion, or whatever,
help my student make a better information retrieval system?

	If we resign to the phrase "COMPUTATIONAL OBJECTS ARE NOT
	PHYSICAL OBJECTS" we'll finish with just another artificial
	model (just like relational- algebra, etc).

Well, I've got nothing against relational algebra.  (I spit on SQL,
of course.  Anything which has the very inventor of relational
algebra practically incandescent with rage as a something which
claims to be relational but isn't, probably _isn't_ a good example
of relational algebra.)  Relational algebra as Codd and Maier and
people like that developed it is a _very_ nice tool for certain jobs.
(I certainly found it easier to master and far more convenient for
developing queries than SQL.)
	
Frankly, no matter what we do, we are going to "finish with just
another artificial model".  What else could we end up with?  It's not
as if some pagan deity was going to breathe life into our statue or
turn our wooden puppet into a real boy, eh?  ANYTHING humans make is
going to be a human-made (= artificial) thing, and none the worse for
that.  The best we can hope for in our models is beauty and utility.

Let me put it this way:  my Macintosh is still running 8.6, because
MacOS 9 was headed down a "photo-realistic" path and I didn't like it.
My colleagues are running MacOS X (on more recent machines).  Sometimes
I think I'd like it (hey, if it has UNIX underneath it has to be good).
Then I look at the "photorealistic" icons, try it for a bit, and realise
once again that the more an icon looks like a "real" object the harder
it is for me personally to use.

Some of Popper's work, especially his attack on quantum mechanics,
hasn't stood the test of time.  But his metaphor of the three worlds
makes a lot of sense.
    World 1 = the objective phsyical world
    World 2 = subjective mind
    World 3 = objective ideas existing independently of their origin
              in World 2.
What has that to do with this thread?  This:  people live in Worlds 2
and 3 just as much as they live in World 1.  Object models are part of
World 3.  They do not resemble, and need not resemble, world 1 objects
any more than mathematical theorems or poems do.	    



More information about the Squeak-dev mailing list