To make a confused situation worse, the line between hackish slang and the vocabulary of technical programming and computer science is fuzzy, and shifts over time. Further, this vocabulary is shared with a wider technical culture of programmers, many of whom are not hackers and do not speak or recognize hackish slang.
Accordingly, this lexicon will try to be as precise as the facts of usage permit about the distinctions among three categories:
* `slang': informal language from mainstream English or non-technical subcultures (bikers, rock fans, surfers, etc).This terminology will be consistently used throughout the remainder of this lexicon.* `jargon': without qualifier, denotes informal `slangy' language peculiar to or predominantly found among hackers --- the subject of this lexicon.
* `techspeak': the formal technical vocabulary of programming, computer science, electronics, and other fields connected to hacking.
The jargon/techspeak distinction is the delicate one. A lot of techspeak originated as jargon, and there is a steady continuing uptake of jargon into techspeak. On the other hand, a lot of jargon arises from overgeneralization of techspeak terms (there is more about this in the "Jargon Construction" section below).
In general, we have considered techspeak any term that communicates primarily by a denotation well established in textbooks, technical dictionaries, or standards documents.
A few obviously techspeak terms (names of operating systems, languages, or documents) are listed when they are tied to hacker folklore that isn't covered in formal sources, or sometimes to convey critical historical background necessary to understand other entries to which they are cross-referenced. Some other techspeak senses of jargon words are listed in order to make the jargon senses clear; where the text does not specify that a straight technical sense is under discussion, these are marked with `[techspeak]' as an etymology. Some entries have a primary sense marked this way, with subsequent jargon meanings explained in terms of it.
We have also tried to indicate (where known) the apparent origins of terms. The results are probably the least reliable information in the lexicon, for several reasons. For one thing, it is well known that many hackish usages have been independently reinvented multiple times, even among the more obscure and intricate neologisms. It often seems that the generative processes underlying hackish jargon formation have an internal logic so powerful as to create substantial parallelism across separate cultures and even in different languages! For another, the networks tend to propagate innovations so quickly that `first use' is often impossible to pin down. And, finally, compendia like this one alter what they observe by implicitly stamping cultural approval on terms and widening their use.
Despite these problems, the organized collection of jargon-related oral history for the File's 2.x.x versions has enabled us to put to rest quite a number of folk etymologies, place credit where credit is due, and illuminate the early history of many important hackerisms such as kluge, cruft, and foo. We believe specialist lexicographers will find many of the historical notes more than casually instructive.