# Bravo (editor de texto)

Bravo foi o primeiro programa processador de texto WYSIWYG. Ele provia o uso de múltiplas fontes num display bitmap no computador pessoal Xerox Alto. Ele foi produzido no Xerox PARC por Butler Lampson, Charles Simonyi e colegas em 1974.

## Visão Geral

Bravo foi um editor modal, caracteres digitados no teclado usualmente eram comandos para o Bravo, exceto quando em modo "insert" ou "append", nesses casos eles seriam inseridos no buffer de caracteres. O Bravo fez uso extensivo do mouse para marcar locais no texto, assim como selecionar areas no texto, mas não era usado para entrada de comandos. (Começando bem cedo do design de interfaces gráficas do usuário, uma interface non-command driven foi tida como muito ambiciosa e possivelmente até mesmo ineficiente e desajeitada.)
Além de de uma longa lista de comandos para controle e formatação de texto (ex: a habilidade de ajustar as margens direita e esquerda para um seção do texto, selecionar fontes, etc). Bravo também suportava o uso de múltiplos buffers (ou seja, arquivos) e também múltiplas janelas.
Apesar do Bravo normalmente mostrar texto com formatação (ex: com justificação, fontes, e espaçamento proporcional de caracteres), ele normalmente não tentava reproduzir a forma como uma página pareceria numa impressão. Isso devido ao monitor do Alto prover uma resolução de 72 pontos por polegada, mas as impressoras laser usadas no PARC proviam uma resolução de 300 PPI. Isso significava que a tela poderia na melhor das hipóteses apenas prover uma aproximação da forma com que a página seria quando impressa. Ao contrário, o modo de display normal mostrava o texto usando tamanho de caracteres, etc., mais adequados as capacidades do display.
Havia um modo de exibição especial que tentava mostrar o texto exatamente como ele apareceria quando impresso, e o conjunto de comandos normal funcionava também nesse modo. No entanto, devido a imagem na tela ser necessariamente uma aproximação, ocasionalmente se encontrariam caracteres e palavras ligeiramente diferentes (um problema que continua até os dias de hoje com sistemas de processamento de texto).
O tamanho de 72 PPI se aproxima bastante de 72.27 pontos por polegadas usado na indústria de impressão comercial, para que um pixel no Bravo fosse o mesmo tamanho que um typeface point.
O Bravo foi a base para o Gypsy, um sistema de de documentos no Alto que veio depois, o primeiro a usar interfaces gráficas do usuário modernas.
O Bravo foi seguido pelo BravoX, que foi desenvolvido em 1979 sobre a liderança de Simonyi no grupo Advanced Systems Development (ASD) na Xerox. O BravoX era "modeless", como foi o Gypsy. Enquanto o Bravo (e BravoX) foram implementados em BCPL para o Xerox Alto, BravoX foi mais tarde reimplementado numa linguagem chamada "Butte" ("a Butte is a small Mesa", como Charles Simonyi costumava dizer). Alto BCPL compilava em instruções de máquina Data General Nova, que eram então interpretadas pelo microcode do Alto. Butte compilava em bytecode específicos de Butte, que eram interpretados por microcódigo Alto especial, similar ao interpretados bytecode Mesa.

## Comando EDIT

Versões iniciais do Bravo tinham uma interface de comandos projetada para que usuários tentando entrar o commando "EDIT" (editar) no modo de comando iria irreversivelmente substituir todos os textos com "T". O "e" era interpretado para selecionar everything (tudo). O "d" iria delete (deletar) tudo selecionado. O "i" iria voltar para o modo input com o "t" aparecendo como o único texto. Apenas uma ação poderia ser desfeita, então apenas a inserção do t poderia ser revertida.