Gypsy was the first document preparation system based on a mouse and graphical user interface to take advantage of those technologies to virtually eliminate modes. Its operation would be familiar to any user of a modern personal computer. It was the second WYSIWYG document preparation program, a successor to the ground-breaking Bravo on the seminal Xerox Alto personal computer.
It was designed and implemented at Xerox PARC in 1975 by Larry Tesler and Timothy Mott, with advice from Dan Swinehart and other colleagues. The code was built on Bravo as a base and the developers of Bravo, including Tom Malloy, Butler Lampson and Charles Simonyi provided technical support to the effort. It was produced for use at Ginn & Co., a Xerox subsidiary in Lexington, Massachusetts which published textbooks.
Although similar in capabilities to the then-current version of Bravo, the user interface of Gypsy was radically different from that of Bravo. In both Bravo and Gypsy, 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. The difference can be illustrated by three examples:
- 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.
- 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.
- 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.
Among other differences between Gypsy and the then-current version of Bravo were:
- To select text in Bravo, the user generally clicked the first and last characters to be selected, each with a different mouse button. In Gypsy, the user could drag from the first to the last character while holding a mouse button down.
- In addition to cut-copy-paste, Gypsy introduced double-click to select a word as well as the ability to change the style of a text selection to bold, italic or underlined by pressing the Control key (also called "Look") while pressing "B", "I", or "U".
- To minimize memorization and modes, the least frequently used commands in Gypsy appeared in a clickable menu. Each menu item could have parameters as in dialog boxes today. For example, the Scan (find) command took one parameter, which the user entered modelessly before clicking the command name, "Scan".
Fewer modes meant less user confusion about what mode the system was in and therefore what effect a particular key press would have.
Gypsy, like Bravo, used a three-button mouse. With the first button alone, the novice user could do everything described above (and more) except double-clicking to select a word. The second and third buttons were intended for experts who were used to Bravo's method of copying or wanted to accelerate word selection using double click.
Gypsy's usability goals were met: new users could learn to work with it in only a few hours. Drag-through selection, double-click and cut-copy-paste were quickly adopted by Dan Ingalls for Smalltalk, beginning with Smalltalk-76. The ideas and techniques were refined in Apple's Lisa and Macintosh computers and spread from there to most modern document preparation systems.
- Hiltzik, Michael A. (1999). Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age. New York: HarperCollins. pp. 201–210.
- Smith, Douglas K.; Robert C. Alexander (1988). Fumbling the Future: How Xerox Invented, Then Ignored, the First Personal Computer. New York: William Morrow. pp. 105–112.
- Moggridge, Bill (2007). Designing Interactions. Cambridge, MA: MIT Press. pp. 48–54.