Une très brève
histoire de l'informatique
Ceci est une traduction (aimablement autorisée par l'auteur) de A Very Brief History of
Computer Science, texte écrit en 1995 (et revu en 1999) par Jeffrey Shallit pour ses étudiants
de l'Université de Waterloo (Canada).
La plupart des notices biographiques obtenues en cliquant sur les noms
cités font partie de l'excellente base de données MacTutor
History of Mathematics archive, développée et gérée par John
O'Connor et Edmund Robertson à l'Université de St Andrews (Ecosse).
Avant 1900
Les machines à calculer sont utilisées depuis des milliers d'années : on
trouvait probablement des abaques à Babylone en 3000 avant notre ère. Les Grecs
ont fabriqué des calculateurs analogiques très perfectionnés. En 1901, au large
de l'île d'Antikythera, on a découvert une épave dans laquelle se trouvait,
encroûté de sel, un assemblage d'engrenages rouillés (le mécanisme d'Antikythera), daté d'environ 80
avant notre ère, que l'on a reconstruit : il servait à
prédire les mouvements des astres.
L'Ecossais John Napier (1550-1617),
l'inventeur des logarithmes, fabriqua vers 1610 les règles de Napier pour simplifier la
multiplication.
En 1641, Blaise Pascal (1623-1662)
construisit une machine à additionner. Un travail analogue fut réalisé
par Gottfried Wilhelm Leibniz (1646-1716), qui
préconisa l'utilisation du système binaire pour les calculs. On a récemment découvert
que Wilhelm Schickard (1592-1635),
professeur à l'Université de Tübingen, avait construit une machine de ce genre
vers 1623 ou 1624 (avant Pascal et Leibniz), qu'il décrivit brièvement dans
deux lettres à Johannes Kepler. Malheureusement, la machine brûla dans un
incendie, et Schickard lui-même mourut de la peste bubonique en 1635, durant la
Guerre de Trente Ans.
Joseph-Marie Jacquard (1752-1834) inventa un métier à tisser dont les
motifs était indiqués par des cartons perforés. Charles Babbage (1792-1871)
construisit deux machines : la machine différentielle(exposée au Science
Museum de Londres) et la machine analytique, beaucoup plus ambitieuse (un
précurseur de l'ordinateur), mais aucune des deux ne marchait correctement.
(Babbage, que l'un de ses biographes traite de « génie irascible », était un
peu bizarre. On ignore généralement qu'il est l'inventeur de la
dendrochronologie, ou datation des arbres; il ne poursuivit pas ses recherches
à ce sujet. Devenu vieux, il consacra une grande partie de son temps à
persécuter les joueurs d'orgue de Barbarie.)
Une amie de Babbage, Ada Byron, comtesse de
Lovelace (1815-1852), est parfois considérée comme le premier programmeur de
l'Histoire, en raison d'un rapport qu'elle écrivit sur la machine de Babbage.
(Le langage de programmation Ada a été nommé en son
honneur.)
L'économiste et logicien anglais William Jevons (1835-1882)
construisit en 1869 une machine à résoudre des problèmes de logique : « la
première machine suffisamment puissante pour résoudre un problème compliqué
plus rapidement qu'à la main » (Martin Gardner). La machine se trouve
actuellement au Museum of the History of Science d'Oxford.
Le statisticien américain Herman Hollerith (1860-1929)
inventa la carte perforée moderne pour l'utiliser dans une machine destinée à
analyser les résultats du recensement de 1890.
1900 - 1939: l'avancée mathématique
L'étude des machines à calculer se poursuivait. On construisit des machines
destinées à une utilisation particulière: ainsi, en 1919, le lieutenant
d'infanterie E. Carissan (1880-1925) conçut et réalisa une merveilleuse machine à factoriser les
entiers. L'Espagnol Leonardo Torres y Quevedo (1852-1936) construisit plusieurs
machines électromécaniques, dont l'une qui jouait des fins de parties d'échecs.
En 1928, le mathématicien David Hilbert (1862-1943) posa
trois questions au Congrès International des Mathématiciens : (1) Les
mathématiques sont-elles complètes ? (tout énoncé mathématique
peut-il être soit prouvé, soit réfuté ?) (2) Les mathématiques sont-elles cohérentes ?
(peut-on être sûr que des raisonnements valides ne conduiront pas à des
absurdités ?) (3) Les mathématiques sont-ellesdécidables ?
(existe-t-il un algorithme pouvant dire de n'importe quel énoncé mathématique
s'il est vrai ou faux ?) Cette dernière question est connue sous le nom
de Entscheidungsproblem.
En 1931, Kurt Gödel (1906-1978)
répondit à deux de ces questions. Il démontra que tout système formel
suffisamment puissant est soit incohérent, soit incomplet. De plus, si un
système d'axiomes est cohérent, cette cohérence ne peut être prouvée en n'utilisant
que les axiomes. La troisième question restait ouverte, en remplaçant « vrai »
par « prouvable » (existe-t-il un algorithme pour dire si une assertion peut
être prouvée ?)
En 1936, Alan Turing (1912-1954)
résolut l'Entscheidungsproblem en construisant un modèle formel de
calculateur - la machine de Turing - et en prouvant qu'une telle machine ne
pouvait pas résoudre certains problèmes, en particulier le problème d'arrêt :
étant donné un programme, peut-on dire s'il termine pour n'importe quelle
valeur des données ?
Les années 1940 : la guerre fait naître
l'ordinateur électronique
La complication des calculs balistiques, durant la seconde guerre mondiale,
aiguillonna le développement de l'ordinateur électronique. En 1944, à
Harvard, Howard Aiken (1900-1973)
construisit le calculateur électromécanique Mark I, avec l'aide d'IBM.
Le décryptage militaire conduisit aussi à des projets d'ordinateur. Alan
Turing, en Angleterre, travaillait à décoder la machine allemande Enigma; les
Anglais construisirent un calculateur, le Colossus, pour aider au décryptage.
En 1939, à l'Université d'Iowa, John Atanasoff (1904-1995) et
Clifford Berry conçurent et réalisèrent l'ABC, un calculateur
électronique pour résoudre des systèmes d'équations linéaires, mais il ne
fonctionna jamais correctement.
Atanasoff discuta de son invention avec John Mauchly (1907-1980), qui,
plus tard, avec John Eckert (1919-1995), conçut et réalisa l' ENIAC, un calculateur
électronique destiné à l'origine aux calculs balistiques. On ne sait pas très
bien quelles idées Atanasoff transmit à Mauchly; le mérite d'avoir inventé le
premier ordinateur revient-il à Atanasoff ou à Mauchly et Eckert ? Ce fut le
sujet de batailles juridiques, c'est encore celui d'un débat historique.
L'ENIAC fut construit à l'Université de Pennsylvanie, et terminé en 1946.
En 1944, Mauchly, Eckert, et John von Neumann (1903-1957)
travaillaient à la conception d'un ordinateur électronique, l'EDVAC. Le premier rapport de Von Neumann sur
l'EDVAC eut beaucoup d'influence; on y trouve de nombreuses idées encore
utilisées dans les ordinateurs les plus modernes, dont une routine de tri par
fusion. Eckert et Mauchly reprirent ces idées pour construire l'UNIVAC.
Pendant ce temps, en Allemagne, Konrad Zuse (1910-1995)
construisait le premier calculateur programmable universel (non spécialisé), le
Z3 (1941).
En 1945, Vannevar Bush publia As We May Think, un article étonnamment
prophétique sur le traitement de l'information, et ses effets sur la société
dans les temps à venir.
En Angleterre, Maurice Wilkes (né en 1913) construisit l'EDSAC (à partir de
l'EDVAC). F. Williams (né en 1911) et son équipe construisirent le Manchester
Mark I, dont une version fut opérationnelle dès juin 1948. Certains considèrent
cette machine comme le premier ordinateur à programme en mémoire (architecture
dite de Von Neumann).
L'invention du transistor en 1947 par John
Bardeen, Walter Brattain et William Shockley transforma l'ordinateur, et permit
la révolution du microprocesseur. Pour cette découverte, ils reçurent le Prix Nobel de Physique en 1956. (Par la suite, Shockley se
rendit célèbre pour ses points de vue racistes.)
Jay Forrester (né en 1918)
inventa vers 1949 la mémoire à noyau magnétique.
Les années 50
Grace Hopper (1906-1992)
inventa la notion de compilateur (1951). (Quelques années plus tôt, elle avait
trouvé le premier bug de l'histoire de
l'informatique, une phalène entrée dans le Mark II de Harvard.)
John Backus et son équipe
écrivirent le premier compilateur FORTRAN en avril 1957. LISP (List Processing),
un langage de traitement de listes pour l'intelligence artificielle, fut
inventé par John McCarthyvers 1958. Alan Perlis,
John Backus, Peter Naur et leurs associés développèrent Algol (Algorithmic
Language) en 1959. Jack Kilby (Texas Instruments) et Robert Noyce (Fairchild
Semiconductor) inventèrent les circuits intégrés en 1959.
Edsger Dijkstra (1930-2002) trouva
un algorithme efficace pour résoudre le problème des plus courts chemins dans
un graphe, à titre de démonstration pour l'ARMAC en 1956. Il trouva aussi un
algorithme efficace de recherche d'un arbre recouvrant de poids minimal, afin
de minimiser le câblage du X1. (Dijkstra est célèbre pour ses déclarations
caustiques et péremptoires; voir par exemple son avis sur quelques
langages de programmation).
Dans un célèbre article de la revue Mind, en 1950, Alan
Turing décrivit le test de Turing, l'une des premières
avancées en intelligence artificielle. Il proposait une définition de la «
pensée » ou de la « conscience » relative à un jeu : un examinateur pose des
questions par écrit à un interlocuteur situé dans la pièce voisine, et doit
décider, au vu des réponses, si son interlocuteur est une machine ou un être
humain.
S'il est incapable de répondre, on peut raisonnablement dire que
l'ordinateur « pense ». En 1952, Alan Turing fut arrêté pour outrage aux bonnes
moeurs après qu'une plainte pour cambriolage eut révélé sa liaison avec Arnold
Murray. L'homosexualité affichée était tabou dans l'Angleterre des années 1950,
et on obligea Turing à suivre un « traitement » hormonal qui le rendit
impuissant et lui fit pousser des seins. Le 7 juin 1954, Turing se suicida en
mangeant une pomme enrobée de cyanure.
Les années 1960
Dans les années 1960, l'informatique devint une discipline à part entière.
Le premier département d'informatique fut créé en 1962 à l'Université
de Purdue; le premier Ph.D. d'informatique fut délivré à Richard Wexelblat par
l'Université de Pennsylvanie, en décembre 1965.
Il y eut une percée dans les systèmes d'exploitation. Fred Brooks (IBM)
conçut System/360, une série d'ordinateurs de tailles variées, avec la même
architecture et le même ensemble d'instructions. Edsger Dijkstra, à Eindhoven,
conçut le système multiprogramme THE.
De nombreux langages de programmation virent le jour, tels que BASIC, développé
vers 1964 par John Kemeny (1926-1992) et Thomas Kurtz (né en 1928).
Les années 1960 virent émerger la théorie des automates et des langages
formels : on peut notamment citer Noam
Chomsky (qui se fit plus tard remarquer par la théorie suivant
laquelle le langage est «câblé » dans le cerveau, et pour sa critique de la
politique étrangère des Etats-Unis) et Michael Rabin.
On commença aussi à utiliser des méthodes formelles pour prouver la
correction des programmes. Les travaux de Tony Hoare (l'inventeur de
Quicksort) jouèrent un rôle important.
Vers la fin de la décennie, on commença à construire ARPAnet, le précurseur
d'Internet. Ted Hoff (né en 1937) et Federico Faggin (Intel) conçurent le
premier microprocesseur en 1969-1971.
Donald Knuth (né en 1938),
auteur du traité The Art of Computer
Programming, posa des fondements mathématiques rigoureux pour l'analyse des
algorithmes.
Les années 1970
Les travaux d'Edgar Codd (1924-2003) sur
les bases de données relationnelles permirent une avancée majeure dans la
théorie des bases de données. Codd reçut le Turing Award en 1961. Le système
d'exploitation Unix fut développé aux
Bell Laboratories par Ken Thompson (né en 1943) et Dennis Ritchie (né en 1941).
Brian Kernighan et Ritchie développèrent C, un important langage de
programmation.
On vit apparaître de nouveaux langages, tels que Pascal (inventé par Niklaus Wirth)
et Ada (réalisé par une équipe dirigée par Jean Ichbiah). La première
architecture RISC fut commencée par John Cocke en 1975, chez IBM.
Vers cette époque, des projets analogues démarrèrent à Berkeley et Stanford.
Les années 1970 virent aussi naître les super-ordinateurs. Seymour Cray (né en
1925) conçut le CRAY-1, qui apparut en mars
1976; il pouvait exécuter 160 millions d'opérations par seconde. Le Cray XMP
sortit en 1982. Cray
Research (à présent repris par Silicon Graphics) continue à
construire des ordinateurs géants.
Il y eut aussi des progrès importants en algorithmique et en théorie de la
complexité. En 1971, Steve Cook publia son article
fondamental sur la NP-complétude, et, peu après, Richard Karp montra que de
nombreux problèmes combinatoires naturels étaient NP-complets.
Whit Diffie et Martin Hellman publièrent un article fondant la théorie de
cryptographie à clef publique; le système de cryptage RSA fut inventé par Ronald Rivest, Adi Shamir, et Leonard Adleman.
En 1979, trois étudiants de Caroline du Nord développèrent un serveur de
nouvelles distribué qui finalement devint Usenet.
Les années 1980
Cette décennie vit apparaître le micro-ordinateur personnel, grâce à Steve
Wozniak et Steve Jobs, fondateurs de Apple Computer. Les premiers virus
informatiques apparurent en 1981 (leur nom est dû à Leonard Adleman).
En 1981, l'Osborne I, le premier ordinateur vraiment portable, fut mis sur
le marché. En 1984, Apple commercialisa le Macintosh. En 1987, l'US National
Science Foundation démarra NSFnet, qui devait devenir une partie de l'Internet actuel.
Les années 1990 et au-delà
On continue à développer des ordinateurs parallèles.
L'informatique biologique, avec les récents travaux de Leonard Adleman sur
l'utilisation de l'ADN comme calculateur non déterministe, ouvre de grandes
perspectives. Le projet Génome Humain cherche à
séquencer tout l'ADN d'un individu.
Peter Shor découvre que l'on peut efficacement factoriser des entiers sur
un ordinateur quantique (théorique), ce qui ouvre la voie à la programmation
quantique.
Les autoroutes de l'information relient de plus en plus les ordinateurs du
monde entier.
Les ordinateurs sont de plus en plus petits; naissance de la
nano-technologie.
0 Comments :
Post a Comment