🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.clos
Article #664

CLOS Private Methods

#664
From: Jon L White
Date: Wed, 26 Jun 1991 05:02
34 lines
2314 bytes
re: The Common Lisp package system can be used for namespace partitioning
    (but is essentially orthogonal to CLOS).  

Right.  The main difficulty is talking with people who are primarily
familiar with the more "conventional" concepts of Object-Oriented
programming as "information hiding" is that "Encapsulation" is not
a fully commensurate concept.  This is especially true when one views
functions/methods as being "owned" by classes, because such a view is
crippling to the multi-method concept (and such a view is fostered
by an inordinate emphasis on univariate "message passing" to the neglect
of the more general "generic functions").   Once having broken this
stranglehold -- that classes are the sine qua non of encapsulation --
then it is easier to talk about the kinds of encapsulation provided
by generic-functions in CLOS and by packages in Common Lisp.

Along this vein, I would recommend reading a paper by Dick Gabriel, myself, 
and Danny Bobrow which has been accepted for publication in a special Lisp 
issue of CACM later this year: "CLOS: Integrating Object-Oriented and 
Functional Programming".  Although we don't focus in on encapsulation per 
se, we do try to clarify the position of the generic-function concept in 
the Object-Oriented paradigm -- so that univariate "message passing" isn't 
misunderstood as the only such paradigm.


But as you say, common practice amongst Common Lisp programmers is to use 
packages sparingly -- perhaps too sparingly.  I believe this is due to the 
"Fear of Packages", and long have wanted to write an expose on the use of 
the CL package facility; something with a title like, say, "Packages 
Unwrapped".  As ever, the "Fear of <x>" stems not only from an "Ignorance 
of <x>" but also an "Ignorance of One's Ignorance of <x>"



-- JonL --
Technical Details
Message-ID: <9106260502.AA11848@kuwait>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!cis.ohio-state.edu!lucid.com!jonl%kuwait
References: <LGM.91Jun25201133@cbnewsc.ATT.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!cis.ohio-state.edu!lucid.com!jonl%kuwait
From: jonl%kuwait@lucid.com (Jon L White)
Newsgroups: comp.lang.clos
Subject: CLOS Private Methods
Message-ID: <9106260502.AA11848@kuwait>
Date: 26 Jun 91 05:02:36 GMT
References: <LGM.91Jun25201133@cbnewsc.ATT.COM>
Sender: daemon@cis.ohio-state.edu
Organization: The Ohio State University Department of Computer and Information Science
Lines: 34