Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!att!cbnewsc!lgm From: lgm@cbnewsc.ATT.COM (lawrence.g.mayka) Newsgroups: comp.lang.misc Subject: Re: Languages that allow extensions to classes Message-ID: <15060@cbnewsc.ATT.COM> Date: 12 Apr 90 14:43:29 GMT References: <22413@cs.yale.edu> Reply-To: lgm@cbnewsc.ATT.COM (lawrence.g.mayka,ihp,) Organization: AT&T Bell Laboratories Lines: 43 In article <22413@cs.yale.edu> briscoe-duke@CS.YALE.EDU (Duke Briscoe) writes: >Don't some CLOS systems have a browser which allows you to look at >(and edit) the source for a class' methods regardless of what file was >loaded to define the method? I'm not a big fan of depending on plain >text files as a way of representing programs; richer data structures >(like what a browser uses) would be preferable, which are offered to >some extent by Smalltalk and some Lisp environments. Yes. In general, Common Lisp and Smalltalk are designed to take advantage of any advanced software development environment technology that may be present. When circumstances preclude the use of such technology, one can still fall back on more traditional techniques, such as the one-class-per-file convention. I would also point out that the Common Lisp Object System is a "grand unification" of functional and object-oriented programming. A functional view would group methods by generic function (method selector) rather than by class. CLOS supports both the functional (generic-function-based) and object-oriented (class-based) views. Related to this also is CLOS' ability to specialize a method on more than one argument (i.e., not just the first). Such a "multimethod" belongs, in a sense, to two or more classes, so its logical role in the software system does not really correspond to its textual placement, which is of course limited to a single file (unless one's textual programs reside on a hypertext system). >I think the other issue is whether a language has the capability of >incrementally extending or redefining definitions without having to do >massive recompilation. This often involves an extra level of Yes. One would like the ability to define new behaviors (methods) for any existing class and any existing objects, even for basic types such as integers and strings, without disturbing existing software at all. CLOS permits one to do just that. Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer.