[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Class Names (Again! Can't We Ever Stop?)

rpg: ``There is no tradition of using non-symbols for names in Lisp.''


``Actually there is, function specs are an example of this.  The
motivation for non symbol names in CLOS comes from the fact that we can
deal with first class objects. ''

This is part of a newly emerging tradition - that is, it's the latest
thing as far as Common Lisp is concerned. It might be a tradition in Lisp
machine Lisp, and in fact we adopted a reduced function specification notion
for functions in the form of setf generic functions. This has nothing to
do with the names of classes, which is the issue. If we generalize from
function names to class names, why not continue on to slot names?
Why restrict instances to look like structures? Why have slots?

The topic of naming objects in CLOS is addressed by an entire level of the
meta-object protocol. I see no reason to introduce gratuitous and unmotivated
generalizations into the base level when someone who wants to introduce a
bizarre naming scheme will have all the mechanism laid at his feet with
which to do it.

Here is the compelling reason for restricting class names: It introduces
a bit of generality for which very few people will imagine a use, and while
doing so it increases the complexity of an already too-complex specification
that already has mechanisms to handle naming. In short: epsilon complexity
increase, zero benefit.