Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!usenet.eel.ufl.edu!news.mathworks.com!newsfeed.internetmci.com!in3.uu.net!netnews.worldnet.att.net!cbgw2.att.com!nntphub.cb.lucent.com!alice!allegra.att.com!dujardin
From: dujardin@allegra.att.com (Eric Dujardin)
Subject: Re: proposal for simple quasi-standard object system (straw person)
X-Nntp-Posting-Host: ode.tempo.att.com
Message-ID: <DwEM4n.7sz@research.bell-labs.com>
Sender: usenet@research.bell-labs.com (netnews <9149-80593> 0112740)
Organization: Lucent Technologies, Bell Laboratories
References:  <4va0ms$j50@roar.cs.utexas.edu>
Date: Mon, 19 Aug 1996 21:24:23 GMT
Lines: 36

In article <4va0ms$j50@roar.cs.utexas.edu>, wilson@cs.utexas.edu (Paul Wilson) writes:
|> I'm considering proposing a very simple standardized object system
|> for Scheme, and *maybe* a very simple standardized module system.
|> 
|> (...)
|> 
|>  1. It will be based on generic procedures and classes.  It will mostly
|>     specify single-dispatching generic procedures, and at most single
|>     inheritance.  This is enough to get the main benefits of an
|>     object system.  (Yes, I know object systems can have all kinds of
|>     wonderful features that are very nice.  I have plenty of ideas
|>     about those things too, but it doesn't matter.)  It might
|>     even specify only flat classes, without inheritance---generic procedure 
|>     dispatch, so that it would be object-centered but not object-oriented.
|> 

Flat classes would allow to implement various inheritance/subtyping schemes
on top of this system. For example, if types (or Java-like interfaces) are
added, method resolution could depend on subtyping or on inheritance. It could
also depend on several arguments (I may volunteer to implement that). Or a 
subclass could avoid to inherit certain attributes. The method precedence 
policy (in case of multiple inheritance) could also be chosen by the application 
developper. 
The drawback is that object libraries like to rely on a well-defined inheritance
policy. Thus, a "standard inheritance" module could be added, maybe at level 2.
The challenge for developpers of alternative inheritance policies would be
to allow the use of libraries that rely on the "standard inheritance" policy.

My two cents,
Eric
 
-- 
Eric Dujardin                                 dujardin@allegra.lucent.com
Lucent Technologies - Bell Laboratories
Room 2C-234, 600 Mountain Avenue, P.O. Box 636      Phone: (908) 582-7153
Murray Hill, NJ 07974-0636, USA                     Fax  : (908) 582-5809
