From Wikipedia, the free encyclopedia
This article is about the programmer. For the businessman and pilot, see Kenneth Arnold
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.
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.
- 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.
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.
- 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
- "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."
- "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.)