☰ Menu

06.10.2026 · Signal Titans Editorial

Moins deux mille lignes : comment Bill Atkinson a façonné QuickDraw et MacPaint

Comment Bill Atkinson a réécrit le code de QuickDraw et MacPaint dans 128 Ko de mémoire, posant de nouveaux standards graphiques.

Une illustration éditoriale représentant un pinceau en verre translucide suspendu au-dessus d'une grille géométrique de pixels et d'une palette de couleurs sur fond indigo.

En 1982, lorsque les responsables d'Apple ont demandé aux ingénieurs de mesurer leur productivité hebdomadaire en nombre de lignes de code écrites, Bill Atkinson a soumis un unique chiffre négatif : moins 2 000. Il avait consacré cette semaine-là à réécrire les routines logicielles du projet Apple Lisa, accélérant le calcul des régions d'un facteur six tout en réduisant considérablement la taille du code. Pour Atkinson, le génie logiciel était une forme d'art au sein de laquelle la clarté et l'efficacité importaient bien plus que le volume brut.

Photographie: Andy Hertzfeld
Photographie: Andy Hertzfeld. Photo: Tony Wills. Wikimedia Commons · CC BY-SA 3.0. Redimensionnement et conversion en WebP ; sans retouche.

Le décompte de code négatif

Atkinson estimait que la meilleure façon de prévenir les bogues informatiques consistait à rédiger un code proprement structuré, lisible d'un coup d'œil. Selon le Computer History Museum, il réécrivait couramment des sections entières à partir de zéro, jusqu'à cinq fois de suite, afin de les rendre parfaitement intelligibles. Lorsque la direction des projets a instauré des formulaires obligatoires de suivi hebdomadaire pendant la phase de développement de la Lisa, Atkinson a profité de ce décompte négatif pour démontrer que la suppression de code redondant offrait de meilleures performances logicielles. Après avoir reçu ses relevés négatifs durant quelques semaines, l'encadrement a fini par cesser de lui réclamer ces rapports.

De LisaGraf à QuickDraw

Avant de s'atteler au Macintosh, Atkinson avait développé LisaGraf pour l'ordinateur Apple Lisa afin de gérer les graphiques matriciels en mode point. Une fois adaptée aux exigences du projet Macintosh, LisaGraf a évolué pour devenir QuickDraw, la bibliothèque graphique fondamentale chargée du rendu visuel à l'écran. QuickDraw rassemblait 17 101 lignes d'assembleur Motorola 68000 réparties dans 36 fichiers. Pour éliminer le scintillement d'écran très gênant propre aux premiers logiciels graphiques — où les formes étaient effacées avant d'être redessinées —, Atkinson a créé une mémoire tampon hors écran. En composant les images dans cette mémoire masquée avant d'afficher le résultat final, QuickDraw offrait un rendu fluide et sans à-coups.

Concevoir l'espace de dessin

Au début de l'année 1983, Atkinson a commencé à développer MacPaint, le programme de dessin du Macintosh, en adaptant les principes de son prototype LisaSketch (également appelé SketchPad). Plutôt que d'utiliser des menus déroulants pour sélectionner les motifs de dessin comme le faisait SketchPad, il a placé des palettes visuelles permanentes directement à l'écran. Le code source de l'application comprenait 5 822 lignes en Apple Pascal pour la logique de haut niveau et 3 583 lignes en langage d'assemblage pour les routines nécessitant une exécution rapide. En avril 1983, Atkinson a ajouté des outils emblématiques tels que FatBits pour l'édition pixel par pixel, le pot de peinture pour remplir des zones fermées et le lasso pour les sélections non rectangulaires. Il avait également conçu une routine de reconnaissance optique de caractères afin de convertir les dessins en texte, mais il l'a retirée pour éviter que MacPaint ne devienne un mauvais traitement de texte au lieu d'une application de dessin spécialisée.

Faire tenir l'art dans 128 kilo-octets

Atkinson a achevé MacPaint en octobre 1983, réussissant à faire tenir le logiciel dans des limites matérielles particulièrement réduites. Le Macintosh d'origine fonctionnait avec un processeur Motorola 68000 cadencé à 8 MHz, ne disposait que de 128 kilo-octets de mémoire totale et ne possédait aucun matériel dédié au calcul en virgule flottante. MacPaint, QuickDraw et les routines essentielles du système d'exploitation devaient ainsi cohabiter dans cette empreinte mémoire minuscule.

Malgré ces contraintes sévères, le code minutieusement affiné d'Atkinson a offert une interaction visuelle fluide et réactive dès la sortie de la machine. En prouvant que des graphiques matriciels à haute vitesse pouvaient s'exécuter dans 128 kilo-octets de mémoire sans processeur mathématique, MacPaint et QuickDraw ont établi un nouveau banc de test pour les logiciels d'informatique personnelle. Atkinson a démontré qu'un réusinage rigoureux du code et une architecture propre pouvaient débloquer l'informatique interactive sur du matériel restreint.

Image de couverture : illustration générée par IA ; ce n’est pas une photographie documentaire.

Source: MacPaint and QuickDraw Source Code