Another idea translated from programming languages to the human side

Meltsner, Kenneth Kenneth.Meltsner at
Thu Oct 30 10:43:11 PST 2003

Not sure if this has come up before:

An example of a user interface features inspired by a programming
language are continuations as implemented in Haystack [1] -- they allow
users to progress part of the way in a multi-step process, put aside the
work in progress, resume working on a previous task, etc. Now, that's a
cool way to handle personal process automation.


[1] Dennis Quan, David Huynh, David R. Karger, and Robert Miller. "User
Interface Continuations" to appear in UIST 2003.   PDF available at


Dialog boxes that collect parameters for commands often create
ephemeral, unnatural interruptions of a program's normal execution flow,
encouraging the user to complete the dialog box as quickly as possible
in order for the program to process that command. In this paper we
examine the idea of turning the act of collecting parameters from a user
into a first class object called a user interface continuation. Programs
can create user interface continuations by specifying what information
is to be collected from the user and supplying a callback (i.e., a
continuation) to be notified with the collected information. A partially
completed user interface continuation can be saved as a new command,
much as currying and partially evaluating a function with a set of
parameters produces a new function. Furthermore, user interface
continuations, like other continuation-passing paradigms, can be used to
allow program execution to continue uninterrupted while the user
determines a command's parameters at his or her leisure."

More information about the FoRK mailing list