The Jargon File, Version 4.2.2, 20 Aug 2000

Chapter 2

Chapter 23,678 wordsPublic domain

Version 4.1.0, 8 Apr 1999: The Jargon File rides again after three years. This version had 25777 lines, 206825 words, 1359992 characters, and 2217 entries.

Version 4.1.1, 18 Apr 1999: Corrections for minor errors in 4.1.0, and some new entries. This version had 25921 lines, 208483 words, 1371279 characters, and 2225 entries.

Version 4.1.2, 28 Apr 1999: Moving texi2html out of the production path. This version had 26006 lines, 209479 words, 1377687 characters, and 2225 entries.

Version 4.1.3, 14 Jun 1999: Minor updates and markup fixes. This version had 26108 lines, 210480 words, 1384546 characters, and 2234 entries.

Version 4.1.4, 17 Jun 1999: Markup fixes for framed HTML. This version had 26117 lines, 210527 words, 1384902 characters, and 2234 entries.

Version 4.2.0, 31 Jan 2000: Fix processing of URLs. This version had 26598 lines, 214639 words, 1412243 characters, and 2267 entries.

Version 4.2.1, 5 Mar 2000: Point release to test new production machinery. This version had 26647 lines, 215040 words, 1414942 characters, and 2269 entries.

Version 4.2.2, 12 Aug 2000: This version had 27171 lines, 219630 words, 1444887 characters, and 2302 entries.

Version numbering: Version numbers should be read as _major_._minor_._revision_. Major version 1 is reserved for the `old' (ITS) Jargon File, jargon-1. Major version 2 encompasses revisions by ESR (Eric S. Raymond) with assistance from GLS (Guy L. Steele, Jr.) leading up to and including the second paper edition. From now on, major version number N.00 will probably correspond to the Nth paper edition. Usually later versions will either completely supersede or incorporate earlier versions, so there is generally no point in keeping old versions around.

Our thanks to the coauthors of Steele-1983 for oversight and assistance, and to the hundreds of Usenetters (too many to name here) who contributed entries and encouragement. More thanks go to several of the old-timers on the Usenet group _alt.folklore.computers_, who contributed much useful commentary and many corrections and valuable historical perspective: Joseph M. Newcomer, Bernie Cosell, Earl Boebert, and Joe Morris.

We were fortunate enough to have the aid of some accomplished linguists. David Stampe and Charles Hoequist contributed valuable criticism; Joe Keane helped us improve the pronunciation guides.

A few bits of this text quote previous works. We are indebted to Brian A. LaMacchia for obtaining permission for us to use material from the "TMRC Dictionary"; also, Don Libes contributed some appropriate material from his excellent book "Life With UNIX". We thank Per Lindberg, author of the remarkable Swedish-language 'zine "Hackerbladet", for bringing "FOO!" comics to our attention and smuggling one of the IBM hacker underground's own baby jargon files out to us. Thanks also to Maarten Litmaath for generously allowing the inclusion of the ASCII pronunciation guide he formerly maintained. And our gratitude to Marc Weiser of XEROX PARC for securing us permission to quote from PARC's own jargon lexicon and shipping us a copy.

It is a particular pleasure to acknowledge the major contributions of Mark Brader and Steve Summit to the File and Dictionary; they have read and reread many drafts, checked facts, caught typos, submitted an amazing number of thoughtful comments, and done yeoman service in catching typos and minor usage bobbles. Their rare combination of enthusiasm, persistence, wide-ranging technical knowledge, and precisionism in matters of language has been of invaluable help. Indeed, the sustained volume and quality of Mr. Brader's input over several years and several different editions has only allowed him to escape co-editor credit by the slimmest of margins.

Finally, George V. Reilly helped with TeX arcana and painstakingly proofread some 2.7 and 2.8 versions, and Eric Tiedemann contributed sage advice throughout on rhetoric, amphigory, and philosophunculism.

Node:Jargon Construction, Next:Hacker Writing Style, Previous:Revision History, Up:Top

How Jargon Works

Jargon Construction

There are some standard methods of jargonification that became established quite early (i.e., before 1970), spreading from such sources as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers, and John McCarthy's original crew of LISPers. These include verb doubling, soundalike slang, the `-P' convention, overgeneralization, spoken inarticulations, and anthropomorphization. Each is discussed below. We also cover the standard comparatives for design quality.

Of these six, verb doubling, overgeneralization, anthropomorphization, and (especially) spoken inarticulations have become quite general; but soundalike slang is still largely confined to MIT and other large universities, and the `-P' convention is found only where LISPers flourish.

Verb Doubling: Doubling a verb may change its semantics

Soundalike Slang: Punning jargon

The -P convention: A LISPy way to form questions

Overgeneralization: Standard abuses of grammar

Spoken Inarticulations: Sighing and <*sigh*>ing

Anthropomorphization: Homunculi, daemons, and confused programs

Comparatives: Standard comparatives for design quality

Node:Verb Doubling, Next:Soundalike Slang, Up:Jargon Construction

Verb Doubling

A standard construction in English is to double a verb and use it as an exclamation, such as "Bang, bang!" or "Quack, quack!". Most of these are names for noises. Hackers also double verbs as a concise, sometimes sarcastic comment on what the implied subject does. Also, a doubled verb is often used to terminate a conversation, in the process remarking on the current state of affairs or what the speaker intends to do next. Typical examples involve win, lose, hack, flame, barf, chomp:

"The disk heads just crashed." "Lose, lose."

"Mostly he talked about his latest crock. Flame, flame."

"Boy, what a bagbiter! Chomp, chomp!"

Some verb-doubled constructions have special meanings not immediately obvious from the verb. These have their own listings in the lexicon.

The Usenet culture has one tripling convention unrelated to this; the names of `joke' topic groups often have a tripled last element. The first and paradigmatic example was _alt.swedish.chef.bork.bork.bork_ (a "Muppet Show" reference); other infamous examples have included:

_alt.french.captain.borg.borg.borg_

_alt.wesley.crusher.die.die.die_

_comp.unix.internals.system.calls.brk.brk.brk_

_sci.physics.edward.teller.boom.boom.boom_

_alt.sadistic.dentists.drill.drill.drill_

Node:Soundalike Slang, Next:The -P convention, Previous:Verb Doubling, Up:Jargon Construction

Soundalike slang

Hackers will often make rhymes or puns in order to convert an ordinary word or phrase into something more interesting. It is considered particularly flavorful if the phrase is bent so as to include some other jargon word; thus the computer hobbyist magazine "Dr. Dobb's Journal" is almost always referred to among hackers as `Dr. Frob's Journal' or simply `Dr. Frob's'. Terms of this kind that have been in fairly wide use include names for newspapers:

Boston Herald => Horrid (or Harried) Boston Globe => Boston Glob Houston (or San Francisco) Chronicle => the Crocknicle (or the Comical) New York Times => New York Slime Wall Street Journal => Wall Street Urinal

However, terms like these are often made up on the spur of the moment. Standard examples include:

Data General => Dirty Genitals IBM 360 => IBM Three-Sickly Government Property --- Do Not Duplicate (on keys) => Government Duplicity --- Do Not Propagate for historical reasons => for hysterical raisins Margaret Jacks Hall (the CS building at Stanford) => Marginal Hacks Hall Microsoft => Microsloth Internet Explorer => Internet Exploiter

This is not really similar to the Cockney rhyming slang it has been compared to in the past, because Cockney substitutions are opaque whereas hacker punning jargon is intentionally transparent.

Node:The -P convention, Next:Overgeneralization, Previous:Soundalike Slang, Up:Jargon Construction

The `-P' convention

Turning a word into a question by appending the syllable `P'; from the LISP convention of appending the letter `P' to denote a predicate (a boolean-valued function). The question should expect a yes/no answer, though it needn't. (See T and NIL.)

At dinnertime:

Q: ``Foodp?''

A: ``Yeah, I'm pretty hungry.'' or ``T!''

At any time:

Q: ``State-of-the-world-P?''

A: (Straight) ``I'm about to go home.''

A: (Humorous) ``Yes, the world has a state.''

On the phone to Florida:

Q: ``State-p Florida?''

A: ``Been reading JARGON.TXT again, eh?''

[One of the best of these is a Gosperism. Once, when we were at a Chinese restaurant, Bill Gosper wanted to know whether someone would like to share with him a two-person-sized bowl of soup. His inquiry was: "Split-p soup?" -- GLS]

Node:Overgeneralization, Next:Spoken Inarticulations, Previous:The -P convention, Up:Jargon Construction

Overgeneralization

A very conspicuous feature of jargon is the frequency with which techspeak items such as names of program tools, command language primitives, and even assembler opcodes are applied to contexts outside of computing wherever hackers find amusing analogies to them. Thus (to cite one of the best-known examples) Unix hackers often grep for things rather than searching for them. Many of the lexicon entries are generalizations of exactly this kind.

Hackers enjoy overgeneralization on the grammatical level as well. Many hackers love to take various words and add the wrong endings to them to make nouns and verbs, often by extending a standard rule to nonuniform cases (or vice versa). For example, because

porous => porosity

generous => generosity

hackers happily generalize:

mysterious => mysteriosity

ferrous => ferrosity

obvious => obviosity

dubious => dubiosity

Another class of common construction uses the suffix `-itude' to abstract a quality from just about any adjective or noun. This usage arises especially in cases where mainstream English would perform the same abstraction through `-iness' or `-ingness'. Thus:

win => winnitude (a common exclamation)

loss => lossitude

cruft => cruftitude

lame => lameitude

Some hackers cheerfully reverse this transformation; they argue, for example, that the horizontal degree lines on a globe ought to be called `lats' -- after all, they're measuring latitude!

Also, note that all nouns can be verbed. E.g.: "All nouns can be verbed", "I'll mouse it up", "Hang on while I clipboard it over", "I'm grepping the files". English as a whole is already heading in this direction (towards pure-positional grammar like Chinese); hackers are simply a bit ahead of the curve.

The suffix "-full" can also be applied in generalized and fanciful ways, as in "As soon as you have more than one cachefull of data, the system starts thrashing," or "As soon as I have more than one headfull of ideas, I start writing it all down." A common use is "screenfull", meaning the amount of text that will fit on one screen, usually in text mode where you have no choice as to character size. Another common form is "bufferfull".

However, hackers avoid the unimaginative verb-making techniques characteristic of marketroids, bean-counters, and the Pentagon; a hacker would never, for example, `productize', `prioritize', or `securitize' things. Hackers have a strong aversion to bureaucratic bafflegab and regard those who use it with contempt.

Similarly, all verbs can be nouned. This is only a slight overgeneralization in modern English; in hackish, however, it is good form to mark them in some standard nonstandard way. Thus:

win => winnitude, winnage

disgust => disgustitude

hack => hackification

Further, note the prevalence of certain kinds of nonstandard plural forms. Some of these go back quite a ways; the TMRC Dictionary includes an entry which implies that the plural of `mouse' is meeces, and notes that the defined plural of `caboose' is `cabeese'. This latter has apparently been standard (or at least a standard joke) among railfans (railroad enthusiasts) for many years.

On a similarly Anglo-Saxon note, almost anything ending in `x' may form plurals in `-xen' (see VAXen and boxen in the main text). Even words ending in phonetic /k/ alone are sometimes treated this way; e.g., `soxen' for a bunch of socks. Other funny plurals are `frobbotzim' for the plural of `frobbozz' (see frobnitz) and `Unices' and `Twenices' (rather than `Unixes' and `Twenexes'; see Unix, TWENEX in main text). But note that `Twenexen' was never used, and `Unixen' was not sighted in the wild until the year 2000, thirty years after it might logically have come into use; it has been suggested that this is because `-ix' and `-ex' are Latin singular endings that attract a Latinate plural. Finally, it has been suggested to general approval that the plural of `mongoose' ought to be `polygoose'.

The pattern here, as with other hackish grammatical quirks, is generalization of an inflectional rule that in English is either an import or a fossil (such as the Hebrew plural ending `-im', or the Anglo-Saxon plural suffix `-en') to cases where it isn't normally considered to apply.

This is not `poor grammar', as hackers are generally quite well aware of what they are doing when they distort the language. It is grammatical creativity, a form of playfulness. It is done not to impress but to amuse, and never at the expense of clarity.

Node:Spoken Inarticulations, Next:Anthropomorphization, Previous:Overgeneralization, Up:Jargon Construction

Spoken inarticulations

Words such as `mumble', `sigh', and `groan' are spoken in places where their referent might more naturally be used. It has been suggested that this usage derives from the impossibility of representing such noises on a comm link or in electronic mail, MUDs, and IRC channels (interestingly, the same sorts of constructions have been showing up with increasing frequency in comic strips). Another expression sometimes heard is "Complain!", meaning "I have a complaint!"

Node:Anthropomorphization, Next:Comparatives, Previous:Spoken Inarticulations, Up:Jargon Construction

Anthropomorphization

Semantically, one rich source of jargon constructions is the hackish tendency to anthropomorphize hardware and software. English purists and academic computer scientists frequently look down on others for anthropomorphizing hardware and software, considering this sort of behavior to be characteristic of naive misunderstanding. But most hackers anthropomorphize freely, frequently describing program behavior in terms of wants and desires.

Thus it is common to hear hardware or software talked about as though it has homunculi talking to each other inside it, with intentions and desires. Thus, one hears "The protocol handler got confused", or that programs "are trying" to do things, or one may say of a routine that "its goal in life is to X". One even hears explanations like "... and its poor little brain couldn't understand X, and it died." Sometimes modelling things this way actually seems to make them easier to understand, perhaps because it's instinctively natural to think of anything with a really complex behavioral repertoire as `like a person' rather than `like a thing'.

At first glance, to anyone who understands how these programs actually work, this seems like an absurdity. As hackers are among the people who know best how these phenomena work, it seems odd that they would use language that seemds to ascribe conciousness to them. The mind-set behind this tendency thus demands examination.

The key to understanding this kind of usage is that it isn't done in a naive way; hackers don't personalize their stuff in the sense of feeling empathy with it, nor do they mystically believe that the things they work on every day are `alive'. To the contrary: hackers who anthropomorphize are expressing not a vitalistic view of program behavior but a mechanistic view of human behavior.

Almost all hackers subscribe to the mechanistic, materialistic ontology of science (this is in practice true even of most of the minority with contrary religious theories). In this view, people are biological machines - consciousness is an interesting and valuable epiphenomenon, but mind is implemented in machinery which is not fundamentally different in information-processing capacity from computers.

Hackers tend to take this a step further and argue that the difference between a substrate of CHON atoms and water and a substrate of silicon and metal is a relatively unimportant one; what matters, what makes a thing `alive', is information and richness of pattern. This is animism from the flip side; it implies that humans and computers and dolphins and rocks are all machines exhibiting a continuum of modes of `consciousness' according to their information-processing capacity.

Because hackers accept a that a human machine can have intentions, it is therefore easy for them to ascribe consciousness and intention to complex patterned systems such as computers. If consciousness is mechanical, it is neither more or less absurd to say that "The program wants to go into an infinite loop" than it is to say that "I want to go eat some chocolate" - and even defensible to say that "The stone, once dropped, wants to move towards the center of the earth".

This viewpoint has respectable company in academic philosophy. Daniel Dennett organizes explanations of behavior using three stances: the "physical stance" (thing-to-be-explained as a physical object), the "design stance" (thing-to-be-explained as an artifact), and the "intentional stance" (thing-to-be-explained as an agent with desires and intentions). Which stances are appropriate is a matter not of truth but of utility. Hackers typically view simple programs from the design stance, but more complex ones are modelled using the intentional stance.

Node:Comparatives, Previous:Anthropomorphization, Up:Jargon Construction

Comparatives

Finally, note that many words in hacker jargon have to be understood as members of sets of comparatives. This is especially true of the adjectives and nouns used to describe the beauty and functional quality of code. Here is an approximately correct spectrum:

monstrosity brain-damage screw bug lose misfeature

crock kluge hack win feature elegance perfection

The last is spoken of as a mythical absolute, approximated but never actually attained. Another similar scale is used for describing the reliability of software:

broken flaky dodgy fragile brittle

solid robust bulletproof armor-plated

Note, however, that `dodgy' is primarily Commonwealth Hackish (it is rare in the U.S.) and may change places with `flaky' for some speakers.

Coinages for describing lossage seem to call forth the very finest in hackish linguistic inventiveness; it has been truly said that hackers have even more words for equipment failures than Yiddish has for obnoxious people.

Node:Hacker Writing Style, Next:Email Quotes, Previous:Jargon Construction, Up:Top

Hacker Writing Style

We've already seen that hackers often coin jargon by overgeneralizing grammatical rules. This is one aspect of a more general fondness for form-versus-content language jokes that shows up particularly in hackish writing. One correspondent reports that he consistently misspells `wrong' as `worng'. Others have been known to criticize glitches in Jargon File drafts by observing (in the mode of Douglas Hofstadter) "This sentence no verb", or "Too repetetetive", or "Bad speling", or "Incorrectspa cing." Similarly, intentional spoonerisms are often made of phrases relating to confusion or things that are confusing; `dain bramage' for `brain damage' is perhaps the most common (similarly, a hacker would be likely to write "Excuse me, I'm cixelsyd today", rather than "I'm dyslexic today"). This sort of thing is quite common and is enjoyed by all concerned.

Hackers tend to use quotes as balanced delimiters like parentheses, much to the dismay of American editors. Thus, if "Jim is going" is a phrase, and so are "Bill runs" and "Spock groks", then hackers generally prefer to write: "Jim is going", "Bill runs", and "Spock groks". This is incorrect according to standard American usage (which would put the continuation commas and the final period inside the string quotes); however, it is counter-intuitive to hackers to mutilate literal strings with characters that don't belong in them. Given the sorts of examples that can come up in discussions of programming, American-style quoting can even be grossly misleading. When communicating command lines or small pieces of code, extra characters can be a real pain in the neck.

Consider, for example, a sentence in a vi tutorial that looks like this:

Then delete a line from the file by typing "dd".

Standard usage would make this

Then delete a line from the file by typing "dd."

but that would be very bad -- because the reader would be prone to type the string d-d-dot, and it happens that in vi(1) dot repeats the last command accepted. The net result would be to delete two lines!

The Jargon File follows hackish usage throughout.

Interestingly, a similar style is now preferred practice in Great Britain, though the older style (which became established for typographical reasons having to do with the aesthetics of comma and quotes in typeset text) is still accepted there. "Hart's Rules" and the "Oxford Dictionary for Writers and Editors" call the hacker-like style `new' or `logical' quoting. This returns British English to the style Latin languages (including Spanish, French, Italian, Catalan) have been using all along.

Another hacker habit is a tendency to distinguish between `scare' quotes and `speech' quotes; that is, to use British-style single quotes for marking and reserve American-style double quotes for actual reports of speech or text included from elsewhere. Interestingly, some authorities describe this as correct general usage, but mainstream American English has gone to using double-quotes indiscriminately enough that hacker usage appears marked [and, in fact, I thought this was a personal quirk of mine until I checked with Usenet --ESR]. One further permutation that is definitely not standard is a hackish tendency to do marking quotes by using apostrophes (single quotes) in pairs; that is, 'like this'. This is modelled on string and character literal syntax in some programming languages (reinforced by the fact that many character-only terminals display the apostrophe in typewriter style, as a vertical single quote).

One quirk that shows up frequently in the email style of Unix hackers in particular is a tendency for some things that are normally all-lowercase (including usernames and the names of commands and C routines) to remain uncapitalized even when they occur at the beginning of sentences. It is clear that, for many hackers, the case of such identifiers becomes a part of their internal representation (the `spelling') and cannot be overridden without mental effort (an appropriate reflex because Unix and C both distinguish cases and confusing them can lead to lossage). A way of escaping this dilemma is simply to avoid using these constructions at the beginning of sentences.

There seems to be a meta-rule behind these nonstandard hackerisms to the effect that precision of expression is more important than conformance to traditional rules; where the latter create ambiguity or lose information they can be discarded without a second thought. It is notable in this respect that other hackish inventions (for example, in vocabulary) also tend to carry very precise shades of meaning even when constructed to appear slangy and loose. In fact, to a hacker, the contrast between `loose' form and `tight' content in jargon is a substantial part of its humor!