Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!fas-news.harvard.edu!newspump.wustl.edu!news.ecn.bgu.edu!siemens!news.sprintlink.net!noc.netcom.net!netcomsv!uu3news.netcom.com!netcomsv!uucp3.netcom.com!medicus!billf
From: billf@medicus.com (Bill Foote)
Subject: Re: ENVY and public/private (was Re: Envy)
Message-ID: <1995Jun7.020213.9550@medicus.com>
Organization: Medicus Systems Corp.
References: <3quq80$nes@isnews.is.s.u-tokyo.ac.jp> <NEWTNews.802357251.48.sellers@sellers.sellers.com> <Jan.Bytesmiths-0506951049120001@138.120.62.112>
Date: Wed, 7 Jun 1995 02:02:13 GMT
Lines: 32

In article <Jan.Bytesmiths-0506951049120001@138.120.62.112> Jan.Bytesmiths@acm.org writes:
>[much good discussion about public/private elided...]
>
>IMHO, the method security model is one of the weakest aspects of ENVY. I
>agree both with Jeff, that very little is truly private, and with John,
>that very little is truly public.
>
>The problem is that modules have different interfaces to various other
>modules. Just as an instance of Woman has a different "interface" to her
>children than she does to her spouse (if she doesn't, she's either in jail
>or divorced! :-), modules need the ability to say "these methods are
>private except for these select clients." In many cases, this "middle
>ground" makes up the vast majority of a module's methods, in other cases
>which are intended to be general-purpose (such as Collections), the more
>simplistic public/private approach works well.

As an aside, Eiffel does something very much like this.  Features are
put into categories, and categories have a list of classes within which 
those features are visible.  Classes appearing in that list or their
subclasses may access the exported features.  It's also possible to
export a feature to yourself (giving the effect of "protected" in C++),
or to the special class NONE (which is more restrictive that C++'s
"private", in that you may not access that feature within other instances 
of the same class).

Anyway, sorry for the non-Smalltalk intrusion, but I though that some might
be interested :-)
--
Bill Foote                | Adde parvum parvo magnus acervus ecrit.
billf@medicus.com         | [Add little to little and there will be a big pile]
Medicus Systems           |    -- Ovid, via Frederick P. Brooks, Jr.
Alameda, CA USA           |
