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

NIL and T

Divergences in Common-Lisp from common practice in the major dialects
of Lisp in use today should be made for good reason.

The stronger the divergence, the better the reasons need to be.
The strength of the divergence can be measured by the amount of
impact a change can potentially have on an old program:
 little or no impact (e.g., adding new functions)
 mechanically convertible (e.g., changing order of arguments)
 mechanically detectable (e.g., removing functions in favor of others)
 not mechanically detectable (e.g., changing the type of the empty list).

Good reasons can come under several categories: uniformity,
ease of efficient implementation, usefulness of the feature,
and aesthetics.

Aesthetic arguments can be general ("I like it") or specific
("the following program is 'cleaner').

I think that changing NIL and T requires very strong reasons.
Most of the arguements for the change have been in terms of
general aesthetics. I do not believe there are strong arguments
for this divergence: the number of situations in which programs
become clearer is vanishingly small, and not nearly enough to
justify this source of confusion to most anyone who has used
most any dialect of Lisp in the last ten years.