Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!aramis.rutgers.edu!atanasoff.rutgers.edu!lou From: lou@cs.rutgers.edu (lou) Newsgroups: comp.lang.lisp Subject: Re: Common Lisp Package System Considered Harmful Message-ID: Date: 19 Oct 90 15:32:18 GMT References: <271CDC30.1E54@wilbur.coyote.trw.com> <2865200060@ARTEMIS.cam.nist.gov> ?<271BA6D1.5B83@wilbur.coyote.trw.com>> <271E0D40.451E@wilbur.coyote.trw.com> <1990Oct18.152453.7100@hellgate.utah.edu> Sender: lou@atanasoff.rutgers.edu Reply-To: lou@cs.rutgers.edu Organization: Computer Science Dept., Rutgers University, New Brunswick, NJ 08903 Lines: 27 In-reply-to: moore%cdr.utah.edu@cs.utah.edu's message of 18 Oct 90 21:24:53 GMT In article <1990Oct18.152453.7100@hellgate.utah.edu> moore%cdr.utah.edu@cs.utah.edu (Tim Moore) writes: [...] I think it's great that data structures are exposed in Lisp, if only to satisfy my own curiosity. [...] Strict information hiding insures that only the original developers can debug and improve the code. There is another, more basic, reason that lisp folks have not in general gone in for strict information hiding, i.e. with no escape hatches like the double-colon. That is because lisp has been almost exclusively used with interactive programming environments for quite a while now. Code trying to access a non-exported variable of some package may be due to a programmer "cheating" on the modularization of the program, but it MAY simply be a programmer typing to a read-eval-print loop trying to figure out what is happening with his program. The only way a programmer has to interact with his running system is to cause expressions to be eval'ed. If there is no way for an *expression* to access something, then there is no way for the *programmer* to access it during debugging. (I know, accessing stack frames in Common Lisp appears to be an exception, but that was a compromise for the sake of allowing a variety of underlying implementation methods.) -- Lou Steinberg uucp: {pretty much any major site}!rutgers!aramis.rutgers.edu!lou internet: lou@cs.rutgers.edu