ANNÉES 1980

GNU Emacs

En 1974, dans les couloirs du laboratoire d'intelligence artificielle du MIT, Richard Stallman s'attaque à un problème qui agace tous les programmeurs de l'époque : l'éditeur de texte TECO, pourtant puissant, reste d'un maniement laborieux. L'idée lui vient d'améliorer cet outil en s'inspirant de l'éditeur E développé à Stanford. Il ajoute un affichage en temps réel et repense le système de commandes.

Au début, cette amélioration ne change pas grand-chose à TECO. Les utilisateurs lancent le mode d'édition visuelle avec Control-R, modifient leur texte, puis en sortent pour d'autres tâches. Mais une fonctionnalité va tout transformer : la possibilité de redéfinir les commandes pour appeler des programmes écrits directement en TECO. Cette liberté déchaîne la créativité des utilisateurs qui développent leurs propres systèmes de commandes. TECMAC, MACROS, RMODE, TMACS, Russ-mode ou DOC fleurissent dans la communauté. L'usage évolue pour que la sortie du mode d'édition soit superflue, les nouveaux arrivants n'apprennent plus à manipuler TECO directement.

Pourtant, TECO montre ses limites. Il manque de structures de programmation décentes : pas de fonctions nommées, pas de variables propres. Les premiers éditeurs construits sur cette base sont vite ingérables. En 1976, le système TMACS tente d'ajouter ces fonctionnalités manquantes. L'expérience fonctionne, mais les performances souffrent. Stallman observe, analyse et décide de créer EMACS.

Son approche combine deux défis : enrichir TECO des bibliothèques et de l'auto-documentation nécessaires à une programmation lisible, tout en concevant un ensemble de commandes d'édition totalement nouveau. Il étudie les nombreux éditeurs basés sur TECO et cherche à minimiser le nombre de touches pour les opérations courantes. Fin 1976, le premier EMACS fonctionne.

Le développement se poursuit sur le PDP-10 de Digital Equipment Corporation, sous le système ITS du MIT. La plupart du nouveau code s'écrit en TECO, Stallman n'ajoutant au langage que le strict minimum : des optimisations pour les boucles de recherche, l'analyse d'expressions symboliques, et quelques nouvelles interfaces d'entrée-sortie. En 1977, l'intérêt grandit au-delà des murs du MIT. Mike McMahon de SRI International adapte EMACS au système Twenex de Digital. Une centaine de sites l'utilisent déjà.

Le terme « Emacs » se généralise alors, désignant toute une famille d'éditeurs extensibles. L'une des versions les plus marquantes naît sous UNIX, développée par James Gosling. Cette implémentation apporte deux nouveautés remarquables. D'abord, elle exploite les capacités de gestion des processus d'UNIX : filtrer du texte à travers des programmes externes, exécuter différents outils dans des fenêtres séparées. Ensuite, elle introduit MLisp (Mock Lisp), un langage d'extension indépendant du C utilisé pour l'implémentation.

Cette séparation entre langage d'implémentation et langage d'extension révolutionne l'usage. Avec MLisp, simple et élégant, les utilisateurs créent des extensions sans compilation ni édition de liens. Le cycle de développement s'accélère, encourageant les petites améliorations qui font toute la différence dans une interface utilisateur. Le langage offre une vision abstraite du texte, des chaînes, des processus et des fenêtres.

En 1984, Stallman lance GNU Emacs dans le cadre de son projet GNU. Cette fois, il choisit le vrai Lisp comme langage d'extension, plus puissant et cohérent que MLisp. GNU Emacs s'impose. Une communauté active développe des extensions pour tout : courrier électronique, forums de discussion, édition spécialisée selon les langages de programmation, interfaces de débogage.

Emacs prouve qu'un logiciel extensible et personnalisable peut s'adapter aux besoins de chacun. Ce modèle inspire nombre de développements ultérieurs : un cœur stable combiné à un langage d'extension puissant. Les environnements de développement modernes reprennent cette approche, intégrant des langages de programmation, la personnalisation d'interface et l'automatisation de tâches.

L'héritage d'Emacs se retrouve dans son auto-documentation, qui donne accès aux explications des commandes et fonctions depuis l'éditeur, se généralise pour l'aide en ligne des logiciels interactifs.

GNU Emacs continue d'évoluer, fidèle à sa philosophie d'origine. Dans un monde où les technologies sont obsolètes en quelques années, sa longévité témoigne de la justesse de ses principes : extensibilité, puissance et flexibilité. Il s'adapte aux besoins contemporains sans renier ce qui a fait son succès.