-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhacker-writing-style.tex
318 lines (266 loc) · 15.6 KB
/
hacker-writing-style.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
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: `drain 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 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 discussion 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 \citeentry{vi} tutorial that
looks like this:
\begin{quote}
Then delete a line from the file by typing ``dd''.
\end{quote}
Standard usage would make this
\begin{quote}
Then delete a line from the file by typing ``dd.''
\end{quote}
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 stablished for typographical reasons
having to do with the aesthetics of comma and quotes in typeset text) is still
accepted there. \worktitle{Hart's Rules} and the \worktitle{Oxford Dictionary
for Writers and Editors} call the hacker-like style `new' or `logical' quoting.
This turn British English to the style Latin languages (including Spanish,
French, Italian, Catalan) have been using this style 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, \textit{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 \citeentry{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 \citeentry{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 though. 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!
Hackers have also developed a number of punctuation and emphasis conventions
adapted to single-font all-ASCII communications links, and these are
occasionally carried over into written documents even when normal means of font
changes, underlining, and the like are available.
One of these is that TEXT IN ALL CAPS IS INTERPRETED AS `LOUD', and this
becomes such an ingrained synesthetic reflex that a person who goes to
caps-lock while in \citeentry{talk mode} may be aksed to ``stop shouting,
please, you're hurting my ears!''.
Also, it is common to use bracketing with unusual characters to signify
emphasis. The asterisk is most common, as in ``What the *hell*?'' even though
this interferes with the common use of the asterisk suffix as a footnote mark.
The underscore is also common, suggesting underlining (this is particularly
common with book titles; for example, ``It is often alleged that Joe Haldeman
wrote \_The\_Forever\_War\_ as a rebuttal to Robert Heinlein's earlier novel of
the future military, \_Starship\_Troopers\_.''). Other forms exemplified by
``=hell='', ``\textbackslash hell/'', or ``/hell/'' are occasionally seen (it's
claimed that in the last example the first slash pushes the letters over to the
right to make them italic, and the second keeps them from falling over). On
FidoNet, you might see \#bright\# and \^{}dark\^{} text, which was actually
interpreted by some reader software. Finally, words may also be emphasized L I
K E T H I S, or by a series of carets (\^{}) under them on the next line of the
text.
There is a semantic difference between *emphasis like this* (which emphasizes
the phrase as a whole), and *emphasis* *like* *this* (which suggests the writer
speaking very slowly and distinctly, as if to a very young child or a mentally
impaired person). Bracketing a word with the `*' character may also indicate
that the writer wishes readers to consider that an action is taking place or
that a sound is being made. Examples: *bang*, *hic*, *rings*, *grin*, *kick*,
*stomp*, *mumble*.
One might also see the above sound effects as $<$bang$>$, $<$hic$>$,
$<$ring$>$, $<$grin$>$, $<$kick$>$, $<$stomp$>$, $<$mumble$>$. This use of
angle brackets to mark their contents originally derives from conventions used
in \citeentry{BNF}, but since about 1993 it has been reinforced by the HTML
markup used on the World Wide Web.
Angle-bracket enclosure is also used to indicate that a term stands for some
\citeentry{random} member of a larger class (this is straight from
\citeentry{BNF}). Examples like the following are common:
\begin{quote}
So this $<$ethnic$>$ walks into a bar one day \dots
\end{quote}
There is also an accepted convention for `writing under erasure'; the text
\begin{quote}
Be nice to this fool\^{}H\^{}H\^{}H\^{}Hgentleman,\\
he's visiting from corporate HQ.
\end{quote}
reads roughly as ``Be nice to this fool, er, gentleman \dots''. This comes from
the fact that the digraph \^{}H is often used as a print representation for a
backspace. It parallels (and may have been influenced by) the ironic use of
`slashouts' in science-fiction fanzines.
A related habit uses editor commands to signify corrections to previous text.
This custom is fading as more mailers get good editing capabilities, but one
occasionally still sees things like this:
\begin{quote}
I've seen that term used on alt.foobar often.\\
Send it to Erik for the File.\\
Oops...s/Erik/Eric/.
\end{quote}
The s/Erik/Eric/ says ``change Erik to Eric in the preceding''. This syntax is
borrowed from the Unix editing tools ed and sed, but is widely recognized by
non-Unix hackers as well.
In a formula, * signifies multiplication but two asterisks in a row are a
shorthand for exponentiation (this derives from FORTRAN). Thus, one might write
2 ** 8 = 256.
Another notation for exponentiation one sees more frequently uses the caret
(\^{}, ASCII 1011110); one might write instead 2\^{}8 = 256. This goes all the
way back to Algol-60, which used the archaic ASCII `up-arrow' that later became
the caret; this was picked up by Kemeny and Kurtz's original BASIC, which in
turn influenced the design of the bc(1) and dc(1) Unix tools, which have
probably done most to reinforce the convention on Usenet. (TeX math mode also
uses \^{} for exponention.) The notation is mildly confusing to C programmers,
because \^{}\ means bitwise exclusive-or in C. Despite this, it was favored 3:1
over ** in a late-1990 snapshot of Usenet. It is used consistently in this
lexicon.
In on-line exchanges, hackers tend to use decimal forms or improper fractions
(`3.5' or `7/2') rather than `typewriter style' mixed fractions (`3-1/2'). The
major motive here is probably that the former are more readable in a monospaced
font, together with a desire to avoid the risk that the latter might be read as
`three minus one-half'. The decimal form is definitely preferred for fractions
with a terminating decimal representation; there may be some cultural influence
here from the high status of scientific notation.
Another one-line convention, used especially for very large or very small
numbers, is taken from C (which derived it from FORTRAN). This is a form of
`scientific notation' using `e' to replace `*10\^{}'; for example, one year is
about 3e7 seconds long.
The tilde ($\Tilde$) is commonly used in a quantifying sense of
`approximately'; that is, $\Tilde$50 means `about fifty'.
On Usenet and in the \citeentry{MUD} world, common C boolean, logical, and
relational operators such as |, \&, ||, \&\&, ~, ==, ~+, $>$, $<$, $>$= and
=$<$ are often combined with English. The Pascal not-equals, $<$$>$, is also
recognized, and occasionally one sees /= for not-equals (from Ada, Common Lisp,
and Fortran 90). The use of prefix `!' as a loose synonym for `not--' or `no--'
is particularly common; thus, `!clue' is read `no-clue' or `clueless'.
A related practice borrows syntax from preferred programming languages to
express ideas in a natural-language text. For example, one might see the
following:
\begin{verbatim}
In <[email protected]> J. R. Hacker wrote:
>I recently had occasion to field-test the Snafu
>Systems 2300E adaptive gonkulator. \ The price was
>right, and the racing stripe on the case looked
>kind of neat, but its performance left something
>to be desired.
Yeah, I tried one out too.
#ifdef FLAME
Hasn't anyone told those idiots that you can't get
decent bogon suppression with AFJ filters at today's
net volumes?
#endif /* FLAME */
I guess they figured the price premium for true
frame-based semantic analysis was too high.
Unfortunately, it's also the only workable approach.
I wouldn't recommend purchase of this product unless
you're on a *very* tight budget.
#include <disclaimer.h>
--
== Frank Foonly (Fubarco Systems)
\end{verbatim}
In the above, the \#ifdef/\#endif pair is a conditional compilation syntax from
C; here, it implies that the text between (which is a \citeentry{flame}) should
be evaluated only if you have turned on (or defined on) the switch FLAME. The
\#include at the end is C for ``include standard disclaimer here''; the
`standard disclaimer' is understood to read, roughly, ``These are my personal
opinions and not to be construed as the official position of my employer.''
\begin{new}
\begin{usenet}
Disclaimer: \_I\_ don't know what I said, much less my employer
\citeusenet{Klop, Kevin}{unknown}{1989}
{this really happened . . . (long)}{alt.folklore.computers}
{oPCpIOR\_cl0}{15 December}
\end{usenet}
\begin{usenet}
I'm now employed, but I'm responsible for my employer's opinions, not
vice versa.
\citeusenet{Willey, James P.}{[email protected]}{1989}
{Re: HCF instruction (was Re: Welcome}{alt.folklore.computers}
{-2dkTWD8\_PI}{17 December}
\end{usenet}
Some users poke fun at this convention:
\begin{usenet}
Exclaimer:\ \ Hey!
\citeusenet{Casseres, David}{unknown}{1989}{You're Fired!}
{alt.folklore.computers}{7axbqbNfDkM}{15 December}
\end{usenet}
\end{new}
The top section in the example, with $>$ at the left margin, is an example of
an inclusion convention we'll discuss below.
More recently, following on the huge popularity of the World Wide Web,
pseudo-HTML markup has become popular for similar purposes:
\begin{verbatim}
<flame>
Your father was a hamster and your mother smelt of elderberries!
</flame>
\end{verbatim}
You'll even see this with an HTML-style modifier:
\begin{verbatim}
<flame intensity="100%">
You seem well-suited for a career in government.
</flame>
\end{verbatim}
Another recent (late 1990s) construction now common on USENET seems to be
borrowed from Perl. It consists of using a dollar sign before an uppercase form
of a word or acronym to suggest any \citeentry{random} member of the class
indicated by the word. Thus: `\$PHB' means ``any random member of the class
`Pointy-Haired Boss' ''.
Hackers also mix letters and numbers more freely than in mainstream usage. In
particular, it is good hackish style to write a digit sequence when you intend
the reader to understand the text string that names that number in English. So,
hackers prefer to write `1970s' rather than `nineteen-seventies' or `1970's'
(the latter looks like a possessive). It should also be noted that hackers
exhibit much less reluctance to use multiply nested parentheses than is normal
in English. Part of this is almost certainly due to influence from LISP (which
uses deeply nested parentheses (like this (see?)) in its syntax a lot), but it
has also been suggested that a more basic hacker trait of enjoying playing with
complexity and pushing systems to their limits is in operation.
Finally, it is worth mentioning that many studies of on-line communication have
shown that electronic links have a de-inhibiting effect on people. Deprived of
the body-language cues through which emotioanl state is expressed, people tend
to forget everything about other parties except what is presented over that
ASCII link. This has both good and bad effects. A good one is that it
encourages honesty and tends to break down hierarchical authority
relationships; a bad one is that it may encourage depersonalization and
gratuitous rudeness. Perhaps in response to this, experienced netters often
display a sort of conscious formal politesse in their writing that has passed
out of fashion in other spoken and written media (for example, the phrase
``Well said, sir!'' is not uncommon).
Many introverted hackers who are next to inarticulate in person communicate
with considerable fluency over the net, perhaps precisely because they can
forget on an unconscious level that they are dealing with people and thus don't
feel stressed and anxious as they would face to face.
Though it is considered gauche to publicly criticize posters for poor spelling
or grammar, the network places a premium on literacy and clarity of expression.
It may well be that future historians of literature will see in it a revival of
the great tradition of personal letters as art.