
Ken Arnold, November 2006
Kenneth Cutts Richard Cabot Arnold is an American
computer programmer well known
as one of the developers of the 1980s
dungeon-crawling computer game Rogue, for his contributions to
the original Berkeley (
BSD) distribution of
Unix, for his books and articles about
C and
C++ (e.g.
his 1980sā1990s
Unix Review
column, "
The C Advisor"), and his high-profile work on the
Java platform. He has two sons, Jareth
and Corwin.
At Berkeley
Arnold
attended the University of California,
Berkeley
, after having worked at Lawrence Berkeley computer
labs for a year, receiving his A.B. in computer science in 1985. At
Berkeley, he was president of the Berkeley Computer Club and the
Computer Science Undergraduates Association, and made many
contributions to the 2BSD and 4BSD
Berkeley Unix distributions, including:
- curses and termcap: a hardware-independent library for
controlling cursor movement, screen editing, and window creation on
ASCII display terminals, based on termcap (based on Bill Joy's vi screen control
code). Curses was a landmark display library that made it possible for a vast
number of new applications to create full-screen user interfaces
that were portable between
different brands of display terminal.
- Rogue: Arnold,
Michael Toy, and Glenn Wichman co-wrote Rogue, a
full-screen computer
role-playing game that presented a then-novel view of the
"dungeon" from above (rather than via textual description as in the
older Zork and Adventure. It spawned an entire
genre of "roguelike" games.
- Note that despite occasional confusion on the topic, it was a
different Ken Arnold (a "Ken W. Arnold") who contributed to the
Ultima game
series.
- fortune: a fortune cookie
program. Although Arnold's quote-displaying program was not the
first in history, as the BSD standard it became by far the most
widely used, and its database of quotes was voluminous. It also
standardized a plain-text file format that was philosophically aligned
with Unix and thus became widely used both for other fortune
programs as well as non-fortune purposes.[349546]
- Other BSD Unix games by Ken Arnold: Cribbage, Hangman, Hunt,
Mille Bourne, Monopoly, Robots.
- Ctags: a very early special-purpose
hypertext link generator that essentially
turned the vi editor into an IDE. It indexed program
objects (such as functions) so that a user of vi (or a clone such
as vim) could navigate to an
object or function definition from any instance of the object's
name elsewhere in the source code.
Additionally, Ken served as both a member of the student senate and
its president.
Later work
Ken was part of the
Hewlett-Packard
team that designed
CORBA. He also worked for
Apollo Computer; as a molecular
graphics programmer in the Computer Graphics Lab at
UC San Francisco; and as a member of the
UNIX Review Software Review
Board.
At Sun Microsystems
Formerly a senior engineer at
Sun
Microsystems Laboratories, Arnold is an expert on
object-oriented design and
implementation, C, C++,
Java, and
distributed computing. He was one of
the architects of the
Jini technology, the main
implementer of Sun's
JavaSpaces
technology (which implemented
tuple
spaces on the
Java platform), and
worked with
Jim Waldo on
Remote Method Invocation and
object serialization.
Selected bibliography
- JavaSpaces. Principles, Patterns, and Practice; Eric Freeman, Susanne Hupfer, Ken Arnold; ISBN
0-201-30955-6
- The Java Programming Language; 4th Edition; Ken Arnold,
James Gosling, David Holmes; ISBN
0-321-34980-6
- The JiniTM Specification, 2nd Edition; Ken Arnold, Jim Waldo
and the rest of the Jini technology team. Part of the official Jini
Technology Series, published by Addison Wesley.
- A C User's Guide to ANSI C; Ken Arnold, John Peyton.
- "The C Advisor" column in Unix Review (authored by Ken Arnold
198? - 199?)
- "Fear
and Loathing on the UNIX Trail -- Confessions of a Berkeley system
mole."; Doug Merritt with Ken Arnold and Bob Toxen; Unix Review,
Jan 1985
- "Rogue: Where It has Been, Why It Was There, And Why It
Shouldn't Have Been There In The First Place"; USENIX Conference
Proceedings; Summer 1982; Ken C.R.C. Arnold, Michael C. Toy
Selected quotes
- "Every program has at least one bug and can be shortened by at
least one instruction ā from which, by induction, it is evident
that every program can be reduced to one instruction that does not
work."
- "First you listen to the users; then you ignore them."
- "I think that the terseness of Unix programs is a central
feature of the style. When your program's output becomes another's
input, it should be easy to pick out the needed bits. And for
people it is a human-factors necessity
ā important information should not be mixed in with verbosity about
internal program behavior. If all displayed information is
important, important information is easy to find."
- "Simplicity has real value on its own that makes the system
more usable. It's the difference between reading a 100-page manual
and reading a 500-page manual. It is more than five times the
size."[349547]
- "Now that we have all this useful information, it would be nice
to do something with it. (Actually, it can be emotionally
fulfilling just to get the information. This is usually only true,
however, if you have the social life of a kumquat.)" (From the
curses documentation.)
See also
References
- A Brief History of "Rogue".
External links