The Full Wiki

Ken Arnold: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

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,[1] 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.[1]
  • 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

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."[2]
  • "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


External links



Got something to say? Make a comment.
Your name
Your email address