I am a hacker of a later generation than Guy Steele and the coauthors of
the first edition, and my history is different from theirs in a way that
illuminates the major changes that have taken place in hackerdom since that
edition was published in 1983. This revised and massively expanded edition is
a response to those changes, so I think a bit of my history might illuminate
its whys and wherefores.
Back around 1968, I was one of the first few hundred people in the world
to play a video game. I was about twelve years old, and my father (an
executive for UNIVAC and himself formerly one of the very first programmers
back in the days of the great electromechanical dinosaurs of the 1950s) sat me
down in front of an $8 million mainframe and showed me how. The program was a
demo for the UNISCOPE 3000, which many have called the first commercial video
terminal. By pressing keys on the keyboard, you could drop a bomb from a
little vector-graphic bomber at a stick-figure freighter sailing serenely
across the cartoon sea at the bottom of the tube. If you hit (which wasn't
trivial, because the bomb followed a proper parabolic trajectory) the machine
would oblige with a lovely little explosion, after which the ship would break
up and sink majestically beneath the waves.
I was fascinated — even more so after they showed me the keys that
allowed one to vary the speed of the bomber, the speed of the ship, and the
height and angle of the bomber's passes. I quickly mastered hitting the ship
and lost interest in the default settings; I spent the rest of my time there
experimenting with various extreme combinations of the simulation parameters
— hacking at the program, trying to see what I could make it do. I
remember being disappointed at the realization that the ship would break up in
exactly the same way regardless of where the bomb hit.
It took me ten years to realize it, but that experience set my feet on
the road to hackerdom. In 1972, I played BASIC games on some
amazingly clunky ASR-33 teletypes hooked up to the old
Dartmouth Time-Sharing System; I'll never forget the uniquely satisfying
tchoonk those stiff keys made, and the musty smell and
feel of the yellow paper they spooled on the carriage in huge rolls. I hadn't
learned how to program yet, but DTSS included some rudimentary email/talk mode
facilities and I had my first exposure to the odd and wonderful world of
on-line communication there. Then, in high school around 1974, I did a little
hacking on a Wang 720B ‘programmable calculator’, a big clunky
machine with a neat nixie-tube display that you could program with ditsy
little punched cards; five years later it would have been called a personal
computer. But what I was serious about was wanting to be a pure mathematician;
all this stuff with computers was just playing around.
If I'd gone to MIT, I would certainly have gravitated to the AI Lab
hacker culture, which was perhaps at its most vigorous when I started college
in 1976. As things turned out, I went to the University of Pennsylvania and
learned hacking more or less on my own using a borrowed account on the
Wharton School's DEC-10. When it became apparent that I'd taken on too much
too soon and burned out in the math department, getting seriously into hacking
seemed the most natural thing in the world. In 1978, I was mousing around on
the ITS systems using a tourist account over the ARPANET; by 1979, I was
handholding for APL and LISP users, making my lunch money coding for research
projects, and writing a manual for UCI LISP that for all I know may still be
in use at Penn. And sometime in there I got my first look at the old Jargon
File. I loved it, and I spread some of the jargon around among the other
expert-user and fledgling-hacker types at my site.
My first real job, in 1980, was in a LISP support group for AI research
at Burroughs. But that only lasted a year, and it was after that that my
career really took a turn away from what, up to then, had been the classical
hacker growth path. I'd been one of the last generation of LISP hackers to
cut my teeth on the PDP-10; and, while I was at Burroughs, I became one of the
first to get involved with microcomputers. I bought an Osborne 1 and learned
CP/M; a few months later, I ditched that and bought IBM PC number
six-hundred-and-something.
Yes, the age of the personal computer had arrived. For the next two and
a half years I toiled over TRS-80s and IBM PCs in a basement sweatshop off
Walnut Street in Philadelphia. In 1983 I went to work for a startup company
in the suburbs, helping write comm software to link microcomputers to VAXen
and IBM mainframes. Outside, change was overtaking the AI-hacker culture that
Steele & Co. had grown up in and I had briefly been part of. The DEC-10
died, displaced by the VAX; the AI Lab lost its bloom as rival groups tried to
commercialize LISP and AI technology; and, almost unnoticed by the AI crowd,
an operating system called UNIX was beginning to win hearts and minds out in
the real world.
I'd first become intrigued by UNIX in 1974 after reading the classic
Thompson and Ritchie paper in Communications of the
ACM, only to have my curiosity pooh-poohed by my father's
mainframe colleagues. When I moved to the 'burbs in '83 I learned C and sold
my new employers on the idea of training me into their house UNIX wizard
— and that's just what I did for two and a half years. I grew into my
maturity as a programmer right along with UNIX and C, watching them spread
from a few niches in academic and research environments into an unstoppable
tide that completely transformed the computing landscape.
The second time I saw the Jargon File was in late '83, right around the
time the first edition of The Hacker's Dictionary came
out — with nary a word about C or microcomputers or UNIX or any of the
areas where I knew the hottest action in computers was
happening. At the time I just accepted it — in fact, I printed out a
copy and gave it to my boss as a joke, in a report folder blazoned with
“UNDERSTANDING YOUR HACKER” in big letters on the outside. And then I
hardly thought about it for the next six years. I was very busy programming,
writing, consulting, and building a professional reputation as a UNIX expert.
I was lucky; my background convinced me earlier than most that UNIX on
microcomputers was going to be the wave of the commodity-computing future, so
I was out front ready to catch it as it rose.
When I stumbled across the Jargon File again in early 1990, then, I saw
it from a new and more confident point of view. By then, I'd known Richard
Stallman for years and had brought EMACS into the UNIX shops I'd been working
in. I'd grown used to seeing my own history and skills as a bridge between
the old LISP/PDP-10/ARPANET culture and the huge newer community of C and
UNIX hackers and Usenetters and personal computer hobbyists in which I'd spent
most of the 1980s. I'd even originated some jargon terms myself that I'd seen
pass into fairly wide use on Usenet or elsewhere (See:
bondage-and-discipline language,
,
crawling horror, defenestration,
drool-proof paper,
fear and loathing, larval stage,
nailed to the wall, quantum bogodynamics,
raster burn, ,
silly walk).
So I called Guy Steele one day, and we hit it off well and got to
talking ... and the result is this New Hacker's
Dictionary you hold in your hands. It's more than just a meeting
of two cultures, his and mine, because we decided to make an effort to get
input from all the different technical cultures we could reach.
So although a bit over half the entries are from the C/UNIX world and
many of the rest are from the ITS/LISP culture of the old Jargon file, there
are healthy contributions from supercomputing, graphics, the compiler-design
community, TCP/IP wizards, microcomputer developers, and just about everywhere
else in computing where the true hacker nature is manifested.
A few days after I wrote the first version of this preface (in late
April 1990), I received network mail indicating that the ITS machines were
going to be shut down in the near future. These were the home of the old
Jargon File and the digital heartland of the old AI-hacker culture at MIT;
despite a couple of remnant ITS sites in Sweden, the decision to retire them
truly marked the end of an era. They will doubtless be replaced by some
conglomeration of UNIX machines — the final sign that it's truly up to
the UNIX and C community to keep the flame alive now.
We hope this expanded lexicon will be educational to fledgling hackers,
thought-provoking to linguists and anthropologists, and interesting to future
historians of our technological age. And we hope it helps preserve and extend
the values of the hacker culture: the dedication, the irreverence, the respect
for competence, and the intellectual playfulness that makes hackers such a
stimulating group to be among. But most of all, we hope it will be
fun.