Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/3/84; site panda.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!bellcore!decvax!genrad!panda!rmc
From: rmc@panda.UUCP (R. Mark Chilenskas)
Newsgroups: net.lang,net.lang.st80
Subject: Re: What is Object-Oriented
Message-ID: <285@panda.UUCP>
Date: Sun, 10-Feb-85 19:44:19 EST
Article-I.D.: panda.285
Posted: Sun Feb 10 19:44:19 1985
Date-Received: Tue, 12-Feb-85 05:11:46 EST
References: <3013@umcp-cs.UUCP> <117@tove.UUCP>
Reply-To: rmc@panda.UUCP (R. Mark Chilenskas)
Organization: GenRad, Inc., Concord, Mass.
Lines: 38
Xref: watmath net.lang:1409 net.lang.st80:185
Summary: 


	One article in the "quest for a definition of object oriented" 
requested an example of a type of inheritance which is not included in 
Smaltalk.  I think that the AI "knowledge representation languages" such 
as Pearl or Omega.  They provide inheritance of demons which are fired 
when the "status" of objects change (the whenever a new object of the 
class is created, when one is changed, when one is disposed of...)  
While this can probably be handled fairly simply by hacking class specific
New messages etc., it is not provided in the base ST80 language.

	I think that some articles are confusing the language ST80 with
the programming environment provided by Xerox to go with the language.
One could consider an improved Modula-2 programming environment where 
one could modify, recompile, and re-link the implementation module for
an object just as dynamically as one can in ST80.  It would require keeping
a procedure dictionary lying around so one could direct requests to the 
most recent copy of the method / implementation module, or linking 
implementation modules indirectly using a scheme similiar to the VMS runtime
system vectors.  I don't know if Lilith does this sort of thing or not, but
other Modula systems i have seen consider Modula just another Pascal-like
language.  ST80 feels more like a Lisp system becuase it has better 
program development support.  This is an implementation decision and is
not dictated by the language.

	I basically don't currently believe that a definition of what 
"object oriented language" means is currently possible.  We as computer 
scientists are still at the stage of pointing and saying ST80 is for sure
and BASIC is certainly not object oriented.  This is actually ok.  Maybe 
Mathematics makes definitions before there is a consensus in the community
about what words mean, but even that is debatable.  What we are doing now
is pointing and coming up with examples.  Eventually a consensus will 
arise, but by that time all the formal definition will be good for is 
introducing students to a concept which is well understood by the computer
science community as a whole.

	Enjoy,
					R Mark Chilenskas
					decvax!genrad!panda!rmc