Acme: A User Interface for Programmers
Rob Pike
AT&T Bell Laboratories
Murray Hill, New Jersey 07974
Abstract
A hybrid of window system, shell, and editor, Acme gives text-oriented
applications a clean, expressive, and consistent style of interaction.
Traditional window systems support interactive client programs and
offer libraries of pre-defined operations such as popup menus and
buttons to promote a consistent user interface among the clients.
Acme instead provides its clients with a fixed user interface and
simple conventions to encourage its uniform use. Clients access the
facilities of Acme through a file system interface; Acme is in part a
file server that exports device-like files that may be manipulated to
access and control the contents of its windows. Written in a
concurrent programming language, Acme is structured as a set of
communicating processes that neatly subdivide the various aspects of
its tasks: display management, input, file server, and so on.
Acme attaches distinct functions to the three mouse buttons: the left
selects text; the middle executes textual commands; and the right
combines context search and file opening functions to integrate the
various applications and files in the system.
Acme works well enough to have developed a community that uses it
exclusively. Although Acme discourages the traditional style of
interaction based on typescript windows-teletypes-its users find
Acme's other services render typescripts obsolete.
Download the full text of this paper in PDF,
ASCII (53,035 bytes) and
POSTSCRIPT (311,729 bytes) form.
To Become a USENIX Member, please see our
Membership Information.