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