Bravo was the first WYSIWYG document preparation program. It provided multi-font capability using the bitmap displays on the Xerox Alto personal computer. It was produced at Xerox PARC by Butler Lampson, Charles Simonyi and colleagues in 1974.
Bravo was a modal editor—characters typed on the keyboard were usually commands to Bravo, except when in "insert" or "append" mode, in which case they were entered into the character buffer. Bravo made extensive use of the mouse for marking locations in the text, as well as selecting areas of the text, but it was not used for command entry. (Being at the very dawn of graphical user interface design, a non-command driven interface was judged too ambitious and possibly even inefficient and cumbersome.)
In addition to a long list of commands for controlling the formatting of the text (e.g. the ability to adjust left and right margins for sections of text, select fonts, etc.) Bravo also supported use of multiple buffers (i.e. files), and also multiple windows.
Although Bravo usually displayed the text with formatting (e.g. with justification, fonts, and proportional spacing of characters), it did not normally attempt to reproduce the way a page would look in hardcopy. This was because the Alto monitor provided a resolution of 72 pixels per inch, but the laser printers used at PARC provided a resolution of 300 PPI. This meant that the screen could at best only provide an approximation of the way the page would look when printed. Instead, the normal display mode showed the text using character sizes, etc., more suited to the capability of the display.
There was a special display mode which did attempt to show the text exactly as it would appear when printed, and the normal command set worked in that mode as well. However, because the screen image was necessarily an approximation, one would occasionally find characters and words slightly off (a problem that continues to this day with word processing systems).
The 72 PPI pixel size closely approximated the 72.27 points per inch used in the commercial printing industry, so that a pixel in Bravo would be the same size as a typeface point.
Bravo was followed by BravoX, which was developed in 1979 under Simonyi's leadership at Xerox's Advanced Systems Development (ASD) group. BravoX was "modeless", as was Gypsy. While Bravo (and BravoX) were originally implemented in BCPL for the Xerox Alto, BravoX was later re-implemented in a language called "Butte" ("a Butte is a small Mesa", as Charles Simonyi used to say). Alto BCPL compiled into Data General Nova machine instructions, which were in turn interpreted by Alto microcode. Butte compiled into Butte-specific byte codes, which were interpreted by special Alto microcode, similar to the Mesa bytecode interpreter.
Early versions of Bravo had a command interface designed such that a user attempting to enter the command "EDIT" in command-mode would instead irreversibly replace all text with a "T". The "e" was interpreted to select everything. The "d" would delete everything selected. The "i" would switch back to input-mode with the "t" appearing as the only text. Only one action could be undone, so only the insertion of the t could be reversed.
- Borenstein, Nathaniel S. (1991). Programming as if people mattered : friendly programs, software engineering, and other noble delusions (4. print. ed.). Princeton, N.J.: Princeton University Press. p. 132. ISBN 9780691087528.
- "BravoX". IEEE Bushy Tree. Retrieved 2017-05-16.
- Lampson, Butler (1979). "Bravo Manual". Alto User's Handbook. Xerox PARC. pp. 31–62.
- Hiltzik, Michael A. (1999). Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age. New York: HarperCollins. pp. 194–201. ISBN 0-88730-891-0.
- Smith, Douglas K.; Alexander, Robert C. (1988). Fumbling the Future: How Xerox Invented, Then Ignored, the First Personal Computer. New York: W. Morrow. ISBN 0-688-06959-2.
- Lampson, Butler W. (1976). "Bravo". Alto User’s Handbook (print ed.). Palo Alto, CA: Xerox Palo Alto Research Center. pp. 27–59. Retrieved April 3, 2014.