n. 1. A good property or behavior (as of a program).
Whether it was intended or not is immaterial. 2. An intended
property or behavior (as of a program). Whether it is good or not
is immaterial (but if bad, it is also a misfeature
). 3. A
surprising property or behavior; in particular, one that is
purposely inconsistent because it works better that way --- such an
inconsistency is therefore a feature
and not a bug
kind of feature is sometimes called a miswart
; see that entry
for a classic example. 4. A property or behavior that is
gratuitous or unnecessary, though perhaps also impressive or cute.
For example, one feature of Common LISP's `format' function is
the ability to print numbers in two different Roman-numeral formats
(see bells, whistles, and gongs
). 5. A property or behavior
that was put in to help someone else but that happens to be in your
way. 6. A bug that has been documented. To call something a
feature sometimes means the author of the program did not consider
the particular case, and that the program responded in a way that
was unexpected but not strictly incorrect. A standard joke is that
a bug can be turned into a feature
simply by documenting it
(then theoretically no one can complain about it because it's in
the manual), or even by simply declaring it to be good. "That's
not a bug, that's a feature!" is a common catchphrase. See also
, creeping featurism
The relationship among bugs, features, misfeatures, warts, and
miswarts might be clarified by the following hypothetical exchange
between two hackers on an airliner
A "This seat doesn't recline."
B "That's not a bug, that's a feature. There is an emergency
exit door built around the window behind you, and the route has to
be kept clear."
A "Oh. Then it's a misfeature; they should have increased the
spacing between rows here."
B "Yes. But if they'd increased spacing in only one section it
would have been a wart --- they would've had to make
nonstandard-length ceiling panels to fit over the displaced
A "A miswart, actually. If they increased spacing throughout
they'd lose several rows and a chunk out of the profit margin. So
unequal spacing would actually be the Right Thing."