☰ Menu

06.10.2026 · Signal Titans Editorial

Menos duas mil linhas: como Bill Atkinson criou o QuickDraw e o MacPaint

Como Bill Atkinson refatorou o código do QuickDraw e do MacPaint em 128 KB de memória, estabelecendo novos padrões gráficos para a computação pessoal.

Uma ilustração editorial destacando um pincel de vidro translúcido pairando sobre uma grade geométrica de pixels e uma paleta de cores contra um fundo índigo.

Em 1982, quando a gerência da Apple pediu aos engenheiros que relatassem sua produtividade semanal em linhas de código escritas, Bill Atkinson enviou um único número negativo: menos 2.000. Ele havia passado aquela semana refatorando rotinas de software para o projeto Apple Lisa, tornando os cálculos de região seis vezes mais rápidos e reduzindo drasticamente o tamanho da base de código. Para Atkinson, a engenharia de software era uma forma de arte na qual a clareza e a eficiência importavam muito mais do que o volume bruto.

Fotografia: Andy Hertzfeld
Fotografia: Andy Hertzfeld. Foto: Tony Wills. Wikimedia Commons · CC BY-SA 3.0. Redimensionada e convertida para WebP; sem retoques.

A contagem negativa de código

Atkinson acreditava que a melhor maneira de evitar erros de software era escrever um código limpo e organizado, capaz de ser compreendido à primeira vista. De acordo com o Computer History Museum, ele reescrevia rotineiramente seções inteiras do código a partir do zero até cinco vezes para torná-las totalmente legíveis. Quando a gerência de projetos instituiu relatórios semanais obrigatórios de acompanhamento de produtividade durante a fase de desenvolvimento do Lisa, Atkinson usou sua contagem negativa de linhas para demonstrar que a eliminação de código redundante resultava em um desempenho superior do software. Após receber os números negativos por algumas semanas, a gerência parou de solicitar que ele preenchesse os formulários.

De LisaGraf a QuickDraw

Antes de começar a trabalhar no Macintosh, Atkinson desenvolveu o LisaGraf para o computador Apple Lisa com o objetivo de gerenciar gráficos baseados em mapa de bits. Quando adaptado para o desenvolvimento do Macintosh, o LisaGraf evoluiu para o QuickDraw, a biblioteca gráfica fundamental responsável por renderizar o conteúdo visual da tela. O QuickDraw era composto por 17.101 linhas de código assembly para o processador Motorola 68000, distribuídas em 36 arquivos. Para eliminar a incômoda cintilação da tela, comum nos primeiros softwares gráficos — onde as formas eram apagadas antes de serem redesenhadas —, Atkinson criou um buffer de memória fora da tela. Ao compor a renderização em uma memória oculta antes de exibir o resultado final na tela, o QuickDraw alcançou um desempenho visual contínuo e sem falhas.

Desenhando a tela de criação

No início de 1983, Atkinson começou a desenvolver o programa de desenho MacPaint para o Macintosh, adaptando conceitos de seu protótipo LisaSketch, também conhecido como SketchPad. Em vez de depender de menus suspensos para selecionar padrões de desenho, como fazia o SketchPad, ele criou paletas visuais permanentes na própria tela. O código-fonte do aplicativo continha 5.822 linhas em Apple Pascal para a lógica de alto nível e 3.583 linhas de código assembly para as rotinas críticas de velocidade. Em abril de 1983, Atkinson adicionou ferramentas marcantes, como o FatBits para edição pixel por pixel, o Balde de Tinta para preencher áreas fechadas e o Laço para seleções não retangulares. Ele também escreveu uma rotina de reconhecimento óptico de caracteres para converter desenhos em texto, mas a removeu para evitar que o MacPaint se tornasse um processador de texto inadequado em vez de um aplicativo de desenho dedicado.

Comprimindo arte em 128 quilobytes

Atkinson concluiu o MacPaint em outubro de 1983, ajustando o software a limitações de hardware extraordinárias. O Macintosh original operava com um processador Motorola 68000 de 8 MHz, com apenas 128 quilobytes de memória total e sem hardware dedicado para operações de ponto flutuante. O MacPaint, o QuickDraw e as rotinas essenciais do sistema operacional precisavam coexistir dentro desse reduzido espaço de memória.

Apesar dessas restrições severas, o código refinado de Atkinson ofereceu uma interação visual fluida e responsiva quando o computador foi lançado. Ao provar que gráficos em mapa de bits de alta velocidade podiam rodar em 128 quilobytes de memória sem hardware de ponto flutuante, o MacPaint e o QuickDraw estabeleceram um novo teste de desempenho para os softwares de computadores pessoais. Atkinson demonstrou que uma refatoração meticulosa e uma arquitetura limpa podiam viabilizar a computação interativa mesmo em hardwares altamente limitados.

Imagem de capa: ilustração gerada por IA; não é uma fotografia documental.

Fonte: MacPaint and QuickDraw Source Code