L’informatique est une science, encore faut-il en prendre conscience,
Et aussi : mon manuel de système à télécharger au format PDF.
Comme suggéré par le titre de son rapport de 1945, First Draft of a Report on the EDVAC, les principes qu’y exposait von Neumann étaient destinés à s’appliquer à la construction d’une machine nommée EDVAC qui aurait été la première réalisation de l’architecture dite depuis de von Neumann, et aussi le premier ordinateur au sens moderne du terme. Il en fut autrement.
Comment von Neumann, mathématicien réputé à la position scientifique bien établie dans plusieurs domaines, de la théorie des ensembles au calcul des probabilités, en était-il venu à s’intéresser au calcul automatique ? D’abord, il avait fréquenté Alan Turing à l’IAS (Institute for Advanced Studies) de Princeton de 1936 à 1938 et il connaissait ses travaux. Plus tard, Herman H. Goldstine a raconté dans son livre [1] comment, en 1943, alors qu’il était « scientifique du contingent » dans l’U.S. Navy et qu’il travaillait au projet de calculateur ENIAC destiné aux calculs balistiques des canons de marine, il avait aperçu von Neumann sur le quai de la gare d’Aberdeen (Maryland), avait osé l’aborder et lui avait parlé de son travail. Von Neumann avait été immédiatement passionné et s’était joint au projet.
Le projet ENIAC (pour Electronic Numerical Integrator and Computer) devait produire une grande machine à calculer et il avait été mis en route à l’Université de Pennsylvanie en 1943 sous la direction de J. Presper Eckert et de John W. Mauchly. Une fois réalisé (à la fin de 1945), l’ENIAC serait le plus grand calculateur de son temps. Mais l’ENIAC ne répondait pas à la définition communément admise de l’ordinateur : une machine programmable, automatique et universelle. La réalisation d’un calcul avec l’ENIAC demandait des interventions manuelles pour adapter la configuration de la machine, ce qui va à l’encontre de l’exigence d’être automatique et programmable. En fait la programmation était réalisée essentiellement au moyen de commutateurs et de tableaux de connexions, comme sur les machines mécanographiques. C’est en pensant aux moyens d’améliorer ce fonctionnement que von Neumann a conçu son architecture.
Par bien des points, les concepteurs de l’ENIAC étaient tombés sur les mauvaises idées. Par exemple, ils avaient choisi des opérations arithmétiques décimales, dont la réalisation était d’une grande lourdeur, alors que l’arithmétique binaire est beaucoup plus élégante et plus facile à réaliser ave des circuits électroniques. Samuel Goyet [2] a eu, lors d’une séance du séminaire Codes sources, une formule frappante et qui me semble exacte : avant von Neumann, programmer c’était tourner des boutons et brancher des fiches dans des tableaux de connexion, depuis von Neumann c’est écrire un texte ; cette révolution ouvrait la voie à la science informatique.
Plus tard, Eckert et Mauchly ont accusé von Neumann d’avoir pillé leurs idées, mais cette thèse ne résiste pas à la simple lecture du First Draft of a Report on the EDVAC. Il est légitime de dire qu’entre l’EDVAC et l’ENIAC il y a une différence du même ordre qu’entre la lunette de Galilée et les lunettes réalisées auparavant par un Hollandais anonyme : Galilée a certes bénéficié de l’exemple de son prédécesseur, mais, comme l’a souligné Alexandre Koyré dans une étude fameuse [3], sa lunette est la réalisation d’une théorie scientifique, alors que l’instrument de son prédécesseur était le fruit d’une démarche empirique. Le texte de von Neumann est un des fondements (avec la machine de Turing) d’une science nouvelle.
En fait, loin d’être un perfectionnement de l’ENIAC, l’EDVAC en prend le contre-pied sur plusieurs points fondamentaux, et apporte des idées entièrement nouvelles, totalement insoupçonnées des concepteurs de l’ENIAC. Parmi ces idées, la plus significative est sans doute celle d’associer aux organes de calcul proprement dits une mémoire, où sont enregistrés sous la même forme le programme et les données, d’où la désignation fréquente de machine à programme enregistré. Les différents pas du calcul sont matérialisés par les états successifs de la mémoire, l’état final en constitue le résultat. Dans les détails c’est un peu plus compliqué, mais l’idée est là.
La construction de l’EDVAC prendra du retard, et la première machine de von Neumann sera britannique.
En 1995 de grandes manifestations ont été organisées aux États-Unis pour célébrer le cinquantenaire de l’ENIAC comme celui du premier ordinateur, mais c’était abusif. L’ENIAC représente sans doute l’apogée des calculateurs pré-informatiques.
En fait les premiers ordinateurs véritables furent le MARK 1 de l’Université de Manchester, réalisé sous la direction de Max Newman, opérationnel en 1948, et l’EDSAC, construit à l’Université de Cambridge sous la direction de Maurice Wilkes en 1949. Les querelles d’antériorité entre ces deux machines ne sont et ne seront sans doute pas tranchées, mais le fait que cela se joue entre elles n’est guère remis en cause. Les principes à la base de ces deux machines avaient incontestablement été élaborés par John von Neumann aux États-Unis, la théorie sous-jacente était celle du Britannique Alan Turing, mais les réalisations étaient britanniques, d’où sans doute la tentation d’une usurpation commémoratrice américaine...
Cette question de primauté ou pas de l’ENIAC est loin d’être un détail. Selon la réponse qu’on lui donne :
– l’ordinateur a été inventé par Eckert et Mauchly, ou par von Neumann ;
– la première réalisation est américaine, ou britannique ;
– l’informatique est née de l’évolution technique normale des machines mécanographiques, ou d’une rupture épistémologique dont la source se trouve dans la recherche fondamentale en logique ;
– l’informatique est un bricolage d’ingénieur astucieux, ou une percée intellectuelle de première importance, et une science nouvelle.