Une très brève histoire de l'informatique

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-elles dé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 McCarthy vers 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.

Dernière mise à jour : 20/07/2010

Responsable de cette page : Frédéric Mazoit