Cut/Copy and Paste

The most influential computer ever made, original Xerox Alto featuring bit-mapped black and white display sized 606×808 (the same dimensions as a regular 8.5″x11″ sheet of paper, aligned vertically; 5.8 MHz CPU; 128kB of memory (at the cost of $4000); 2.5MB removable cartridge hard drive; three button mouse; 64-key keyboard and a 5-finger key set. It was on such a machine that Bravo and Gypsy were developed, and cut/copy and paste invented. (Photo: Xerox PARC)

Larry Tesler (1945 – ), invented cut/copy and paste. Between 1973 and 1976, Tesler worked at Xerox PARC (Palo Alto Research Center), in Palo Alto, California, on the programming language Smalltalk-76, and especially the Gypsy text editor, referred to then as a document preparation system. It was on this project, he implemented a method of capturing text and inserting it elsewhere.

Xerox PARC was initiated by Xerox Chief Scientist Jacob E. “Jack” Goldman (1921 – 2011) who previously worked at Carnegie Tech and directed the Ford Scientific Laboratory, who hired a physicist, George Pake (1924 – 2004) to create it in 1970.

Xerox PARC was largely responsible for developing laser printing, the Ethernet, the modern personal computer, the graphical user interface (GUI) and desktop paradigm, object-oriented programming, ubiquitous computing, electronic paper, amorphous silicon (a-Si) applications, and advancing very-large-scale integration (VLSI) for semiconductors.

For a more complete story, see: Larry Tesler, A Personal History of Modeless Text Editing and Cut/Copy-Paste (2012)

While most people focus on the cut/copy-paste tool, the concept of modeless software had even greater impact. A mode is a distinct setting within a computer program, in which the same user input will produce different results, because of other settings. Caps lock when pressed puts the user’s typing into a different mode, CAPITAL LETTERS. If it is pressed a second time, the original made will be reactivated, resulting in lower-case letters.

Most interface modes are discouraged because of their potential to induce errors especially when the user is expected to remember the mode state the interface is in. The situation is somewhat better if there is an on-screen state/ mode indicator, such as a change in the colour of an icon, when a mode change is made.

If the user is unaware of an interface mode, there may be an unexpected and undesired response. Mode errors can be disorienting as the user copes with a transgression of user expectations. Not all mode changes are initiated by users,

Mode changes can be initiated by the system, by previous users or by the same user who has disremembered the state change. In such a situation, an operation with the old mode in mind, will disrupt user focus as the user becomes aware of the mode change. This is especially important when a user cannot find how to restore the previous mode.

Prior to Gypsy, Butler Lampson (1943 – ), Charles Simonyi (1948 – ) and others developed Bravo at Xerox PARC in 1974. It was a modal editor where characters typed on the keyboard were usually commands to Bravo, except when in “insert” or “append” mode. Bravo used a mouse to mark text locations and to select text, but not for commands.

Although similar in capabilities to Bravo, the user interface of Gypsy was radically different. In both, a command operated on the current selection. But Bravo had modes and Gypsy didn’t. In Bravo, the effect of pressing a character key depended on the current mode, while in Gypsy, pressing a character key by itself always typed the character.

In the Wikipedia article on Gypsy, the difference between Bravo and Gypsy is illustrated by three examples:

  1. Insert In Bravo’s Command Mode, pressing “I” entered Insert Mode. In that mode, pressing character keys typed characters into a holding area (“buffer”) until the Escape key was pressed, at which time the buffer contents were inserted before the selection and the editor returned to Command Mode.
    In Gypsy, no command or buffer was needed to insert new text. The user simply selected an insertion point with the mouse and typed the new text. Each inserted character went directly into the document at the insertion point, which was automatically repositioned after the new character.
  2. Replace In Bravo, to replace existing text by new text, the user pressed “R” to enter Replace Mode. That mode was just like Insert Mode except that the buffer contents replaced the selection instead of inserting text before it.
    In Gypsy, to replace text, the user simply selected the old text and typed the new text. As soon as the user began to type, Gypsy deleted the old text and selected an insertion point in its stead.
  3. Copy In the then-current version of Bravo, the user selected the destination, pressed “I” or “R” to enter Insert or Replace Mode, selected the source (which highlighted differently from the destination), and pressed Escape to perform the copy and return to Command Mode. While in Insert or Replace Mode, the user could scroll and could select a source, but could not invoke another command, such as opening a different document. To copy text between documents was more complex.
    In Gypsy, the user could select the source text, press the “Copy” function key, select the destination text or insertion point, and press the “Paste” function key. Between Copy and Paste, the system was, as usual, not in a mode. The user could invoke other commands, such as opening a different document.

Fewer modes meant less user confusion about what mode the system was in and therefore what effect a particular key press would have. Gypsy and Bravo both used a three-button mouse, where the second and third buttons were intended for experts.

New users could learn to work with Gypsy in only a few hours. Drag-through selection, double-click and cut-copy-paste were quickly adopted elsewhere, and have become standard on most text editors.

This text was originally written in June 2009 as a draft for a weblog post. It was removed from the weblog, but subsequently revived without the original date and time stamps. New text was added at irregular intervals, including 13 May 2016, 23 April 2018, and 06 May 2019. The publication date of this weblog post celebrates the 10th anniversary of this weblog.

Leave a Reply

Your email address will not be published. Required fields are marked *