Première rédaction de cet article le 27 avril 2006
Comme le savent mes fidèles lecteurs, j'aime beaucoup lire les vieux articles d'informatique : il y a beaucoup de choses à apprendre du passé et, si la liste des failles de sécurité de PHP n'a guère d'intérêt deux ans après, beaucoup d'autres choses en informatique sont bien plus permanentes. D'où mon intérêt pour ce remarquable article, qui décrit la conception et le développement de la première version de l'éditeur Emacs pour le système Multics.
Multics était un système d'exploitation de mainframe, très avancé pour son époque, qui n'a eu qu'un très faible succès commercial, mais qui avait réussi à créer une communauté d'utilisateurs dynamique et créative, comme le font les Unix libres aujourd'hui. Il est donc logique qu'il existe un site Web dédié à Multics, d'où se trouve distribué notre texte, Multics Emacs: The History, Design and Implementation.
(Personnellement, je n'ai fait que de courtes incursions sur un système Multics, vers 1989.)
Multics n'avait comme éditeur que des programmes qui, même à l'époque, étaient jugés archaïques. Par exemple, aucun ne fonctionnait en plein écran, tellement ils étaient optimisés pour des terminaux papier.
D'où la motivation pour développer un nouvel éditeur, Emacs, inspiré du programme du même nom qui tournait sur un autre système d'exploitation, ITS. (Plusieurs éditeurs ont porté le nom de Emacs dont le plus courant aujourd'hui est le GNU Emacs originellement développé par Richard Stallman, et avec lequel j'écris cet article.)
L'article de Bernard Greenberg, écrit en 1979, décrit donc les motivations, les choix techniques, les problèmes, les discussions qui ont accompagné le développement de Multics Emacs. Il nous replonge dans une époque où le seul jeu de caractères était l'ASCII (beaucoup des techniques expliquées ne fonctionneraient pas avec Unicode), il nous décrit les détails de la programmation en Lisp et comment le choix de ce langage avait permis la création d'un "marché" des extensions à Emacs, il cite l'Arpanet, ancêtre de l'Internet, qui permettait de travailler à distance sur la grosse machine Honeywell sur laquelle tournait Multics. Emacs avait tellement révolutionné l'édition de textes qu'on avait commencé à changer des protocoles Internet suite aux limites qu'il mettait en évidence (l'auteur a écrit le RFC 749 suite au développement d'Emacs).
Mais il parle aussi de problèmes éternels en programmation, les compromis de conception qui sont nécessaires, les polémiques sur l'interface utilisateur, l'affrontement entre le gros programme qui fait tout et les petits programmes qui communiquent, les risques et la nécessité de l'optimisation (Emacs passait à l'époque pour un très gros programme, alors qu'il est aujourd'hui ridicule devant les obésiciels comme OpenOffice et Firefox, sans même parler des logiciels de Microsoft).
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)