A software or hardware feature included in order to simplify later
additions or changes by a user. For example, a simple program that
prints numbers might always print them in base 10, but a more
flexible version would let a variable determine what base to use;
setting the variable to 5 would make the program print numbers in
base 5. The variable is a simple hook. An even more flexible program
might examine the variable and treat a value of 16 or less as the
base to use, but treat any other number as the address of a
user-supplied routine for printing a number. This is a {hairy} but
powerful hook; one can then write a routine to print numbers as Roman
numerals, say, or as Hebrew characters, and plug it into the program
through the hook. Often the difference between a good program and a
superb one is that the latter has useful hooks in judiciously chosen
places. Both may do the original job about equally well, but the one
with the hooks is much more flexible for future expansion of
capabilities ({EMACS}, for example, is all hooks). The term user exit
is synonymous but much more formal and less hackish.
[glossary]
[Reference(s) to this entry by made by: {live data}{patch space}{smart terminal}{tune}]