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

Package odor

In case anyone's been wondering why I, who supposedly know something
about packages, haven't said anything in this discussion, it's because
this doesn't seem to be any different from the same discussion ten years
ago at MIT and five years ago in the Common Lisp working group.

Here's the very brief encapsulated wisdom.  It was ignored last time,
and will probably be ignored this time, but I'll send it out once anyway.

Packages are a way of controlling the mapping from names to symbols.
If what you're looking for is a way to control the mapping from symbols
to objects (and that is what you should be looking for), packages are
bound to disappoint you.  Packages are useful for what they do, but not
for more.  Better ideas do exist.  The oldest published better idea I
know of is in SDC TM-2710/111/00, 7 January 1966 (from the LISP 2 effort,
unfortunately stillborn).

The only way to use packages that works reliably in the real world is to
set up the packages in advance and be very careful about making incremental
changes.  The way that CLtL encourages you to use packages simply does not
work reliably for mere mortals.  This is because of the early binding of
the mapping of names to symbols by the Lisp reader.

You can learn how to use packages effectively by studying how the
community that has been using them the longest does it.