Ken Arnold
Encyclopedia
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 Cory.
, 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:
Additionally, Ken served as both a member of the student senate and its president.
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.
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 space
s on the Java platform), and worked with Jim Waldo on Remote Method Invocation and object serialization.
Dungeon crawl
A dungeon crawl is a type of scenario in fantasy role-playing games in which heroes navigate a labyrinthine environment, battling various monsters, and looting any treasure they may find...
computer game Rogue
Rogue (computer game)
Rogue is a dungeon crawling video game first developed by Michael Toy and Glenn Wichman around 1980. It was a favorite on college Unix systems in the early to mid-1980s, in part due to the procedural generation of game content. Rogue popularized dungeon crawling as a video game trope, leading...
, for his contributions to the original Berkeley (BSD) distribution of Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, for his books and articles about C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
(e.g. his 1980s–1990s Unix Review
UNIX Review
UNIX Review was an American magazine covering technical aspects of the UNIX operating system and C programming. Recognized for its in-depth technical analyses, the journal also reported on industry confabs and included some lighter fare....
column, "The C Advisor"), and his high-profile work on the Java platform. He has two sons, Jareth and Cory.
At Berkeley
Arnold attended the University of California, BerkeleyUniversity of California, Berkeley
The University of California, Berkeley , is a teaching and research university established in 1868 and located in Berkeley, California, USA...
, after having worked at Lawrence Berkeley computer labs for a year, receiving his A.B. in computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
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:
- cursesCurses (programming library)curses is a terminal control library for Unix-like systems, enabling the construction of text user interface applications.The name is a pun on the term “cursor optimization”. It is a library of functions that manage an application's display on character-cell terminals .- Overview :The curses API...
and termcapTermcapTermcap is a software library and database used on Unix-like computers. It enables programs to use display computer terminals in a device-independent manner, which greatly simplifies the process of writing portable text mode applications...
: a hardware-independent library for controlling cursor movement, screen editing, and window creation on ASCII display terminals, based on termcap (based on Bill JoyBill JoyWilliam Nelson Joy , commonly known as Bill Joy, is an American computer scientist. Joy co-founded Sun Microsystems in 1982 along with Vinod Khosla, Scott McNealy and Andy Bechtolsheim, and served as chief scientist at the company until 2003...
's viVivi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.The original code for 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. - RogueRogue (computer game)Rogue is a dungeon crawling video game first developed by Michael Toy and Glenn Wichman around 1980. It was a favorite on college Unix systems in the early to mid-1980s, in part due to the procedural generation of game content. Rogue popularized dungeon crawling as a video game trope, leading...
: Arnold, Michael ToyMichael ToyMichael Toy is an American computer programmer. He was one of the developers of the 1980s dungeon-crawling computer game Rogue. He later became an employee of SGI and followed its founder Jim Clark when he left to form Netscape...
, and Glenn WichmanGlenn WichmanGlenn R. Wichman is a software developer who is best known as one of the original authors of the computer game Rogue, along with Michael Toy, Ken Arnold and Jon Lane. Wichman has also contributed to many other commercial software programs, including Microsoft Bookshelf, Mavis Beacon Teaches Typing...
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 ZorkZorkZork was one of the first interactive fiction computer games and an early descendant of Colossal Cave Adventure. The first version of Zork was written in 1977–1979 on a DEC PDP-10 computer by Tim Anderson, Marc Blank, Bruce Daniels, and Dave Lebling, and implemented in the MDL programming language...
and AdventureColossal Cave AdventureColossal Cave Adventure gave its name to the computer adventure game genre . It was originally designed by Will Crowther, a programmer and caving enthusiast who based the layout on part of the Mammoth Cave system in Kentucky...
). It spawned an entire genre of "roguelikeRoguelikeThe roguelike is a sub-genre of role-playing video games, characterized by randomization for replayability, permanent death, and turn-based movement. Most roguelikes feature ASCII graphics, with newer ones increasingly offering tile-based graphics. Games are typically dungeon crawls, with many...
" 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.
- fortuneFortune (program)fortune is a simple program that displays a pseudorandom message from a database of quotations that first appeared in Version 7 Unix. The most common version on modern systems is the BSD fortune, originally written by Ken Arnold...
: 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-textPlain textIn computing, plain text is the contents of an ordinary sequential file readable as textual material without much processing, usually opposed to formatted text....
file formatFile formatA file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...
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 BornesMille BornesMille Bornes is a French card game. In the United States, Mille Bornes is manufactured and distributed by Winning Moves Games under license from Hasbro. It was previously produced by Parker Brothers and is commonly available in stores that sell games...
, Monopoly, RobotsRobots (computer game)Robots is a computer game originally developed for the Berkeley Software Distribution—a derivative of Unix—by Ken Arnold. In the turn-based game, players are tasked with escaping robots programmed to kill them. Since then it has been reproduced as clone games for various platforms.-Gameplay:Robots...
. - CtagsCtagsCtags is a program that generates an index file of names found in source and header files of various programming languages.Depending on the language,functions,variables,class members,macros and so onmay be indexed....
: a very early special-purpose hypertextHypertextHypertext is text displayed on a computer or other electronic device with references to other text that the reader can immediately access, usually by a mouse click or keypress sequence. Apart from running text, hypertext may contain tables, images and other presentational devices. Hypertext is the...
link generator that essentially turned the viVivi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.The original code for vi...
editor into an IDEIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
. It indexed program objects (such as functions) so that a user of vi (or a clone such as vimVim (text editor)Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
) 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-PackardHewlett-Packard
Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...
team that designed CORBA
Çorba
Chorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...
. He also worked for Apollo Computer
Apollo Computer
Apollo Computer, Inc., founded 1980 in Chelmsford, Massachusetts by William Poduska and others, developed and produced Apollo/Domain workstations in the 1980s. Along with Symbolics and Sun Microsystems, Apollo was one of the first vendors of graphical workstations in the 1980s...
; as a molecular graphics programmer in the Computer Graphics Lab at UC San Francisco; and as a member of the UNIX Review
UNIX Review
UNIX Review was an American magazine covering technical aspects of the UNIX operating system and C programming. Recognized for its in-depth technical analyses, the journal also reported on industry confabs and included some lighter fare....
Software Review Board.
At Sun Microsystems
Formerly a senior engineer at Sun MicrosystemsSun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
Laboratories, Arnold is an expert on object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
design and implementation, C, C++, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, and distributed computing
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
. He was one of the architects of the Jini
Jini
Jini , also called Apache River, is a network architecture for the construction of distributed systems in the form of modular co-operating services.Originally developed by Sun, Jini was released under an open source license...
technology, the main implementer of Sun's JavaSpaces technology (which implemented tuple space
Tuple space
A tuple space is an implementation of the associative memory paradigm for parallel/distributed computing. It provides a repository of tuples that can be accessed concurrently. As an illustrative example, consider that there are a group of processors that produce pieces of data and a group of...
s 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 GoslingJames GoslingJames A. Gosling, OC is a computer scientist, best known as the father of the Java programming language.-Education and career:In 1977, Gosling received a B.Sc in Computer Science from the University of Calgary...
, 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-factorsHuman factorsHuman factors science or human factors technologies is a multidisciplinary field incorporating contributions from psychology, engineering, industrial design, statistics, operations research and anthropometry...
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.)
External links
- Ken Arnold's (low volume) Artima log
- Ken Arnold's (low volume) java.net blog
- curses
- Wichman's view of Rogue history
- Napkin Look and Feel for Swing — a GUI that gives the look and feel of a sketch on a napkin