Première moitié du vingtième siècle : la réflexion mathématique
Le XXème siècle débute sur des questions mathématiques en apparence fortement éloignées des questions de la technologie de programmation (complétude, cohérence, décidabilité – Travaux de D. Hilbert), auxquelles répond, entre autres, K. Gödel avec ses travaux sur les systèmes formels. Cette réflexion fondamentale va précéder les travaux de la première légende de l’informatique : A. Turing et sa machine. Prouvant que cet automate n’était pas en mesure de déterminer si oui ou non il arrivait à s’arrêter en fonction de conditions initiales fixées, il illustre par l'invention de ce premier automate programmé le non-déterminisme des travaux fondamentaux. Il est également l'inventeur du test de Turing, capable de déterminer si une machine avait ou non une intelligence semblable à l'intelligence humaine (Cf. les années 50 ci-dessous).
Côté business, en 1917, une petite compagnie rachète International Scale Company : elle s'appelle IBM |
Les années 1940 : naissance de l'ordinateur
C’est la guerre qui donne une consistance technique à ces travaux :
|
Les années 50 : premières avancées des technologies de programmation
Du côté matériel, Jack Kilby (Texas Instruments) et Robert Noyce (Fairchild Semiconductor) inventent les circuits intégrés en 1959 alors qu'IBM commercialise en 1953 son premier ordinateur : l'IBM 701 EDPM. Les années 50 permettent une première avancée majeure en technologie de programmation : l’invention de langages permettrant de s’abstraire du codage binaire de la machine. La recherche algorithmique commence à prendre son essor. |
Les années 1960 : vraie naissance de la programmation informatique
C’est la guerre qui donne une consistance technique à ces travaux :
Les travaux d'Edgar Codd sur les bases de données relationnelles permettent une avancée majeure dans la théorie des bases de données. Codd reçut le Turing Award en 1961. Du côté matériel, Fred Brooks (IBM) conçoit le système d’exploitation System/360, pour une série d'ordinateurs de différentes tailles, de même architecture et de même ensemble d'instructions :on commence à construire ARPAnet, le précurseur d'Internet et Ted Hoff (né en 1937) et Federico Faggin (Intel) conçoivent le premier microprocesseur entre 1969 et 1971. |
Les années 1970 : la décennie des applications
|
Les années 1980 : informatique pour tous et remise en cause
En prolongement du mouvement des années 70, l’informatique arrive dans les foyers :
Côté technologie de programmation, un fait marquant : les premiers virus informatiques apparaissent en 1981 (leur nom est dû à Leonard Adleman). Mais cette décennie est aussi un constat de carences et de scories informatiques. Dans « Evaluations of programming languages (1982) », E.Dijkstra (mort en 2002) exécute lapidairement un certain nombre de stars de l’époque : FORTRAN, "the infantile disorder", by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.
PL/I -- "the fatal disease" -- belongs more to the problem set than the solution set. It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums. Le constat est fait qu’il y a de nombreuses façons de programmer, mais que bien programmer est autant un problème de méthode que de technologie. Il devient urgent d’inventer le génie logiciel. On recherche alors de nouvelles méthodes de développement, on se dote d’outils et d’environnement de développement. Viendront ensuite dans les années 90, la notion de réutilisabilité des composants, d’inter-opérabilité et java en synthèse technologique. |
Un siècle après, le défit des services utilisateurs ?
En un siècle, les informaticiens ont su développer les théories de programmation et les outils nécessaires à l'écriture de programmes. Cependant, ils semblent toujours convaincus que le programme est une fin en soit, la réponse aux questions que des utilisateurs ont pu leur poser.
Pourtant, cette affirmation est totalement fausse : le programme et les matériels qui le font tourner ne sont qu'un outil intermédiaire destiné à rendre un
service. Hormis en informatique fondamentale, l'informatique n'est qu'un maillon intermédiaire entre la demande "métier" d'un utilisateur d'une société
(où une demande plus informelle de tout un chacun), et le service informatique à rendre. Il reste à franchir systématiquement une étape de traduction
entre le "monde des programmes" et celui "des services". Lorsque le processus de développement et de mise en production est complet, cette étape est assurée par
l'intégration de production, qui est un espace particulier de programmation où le but n'est pas tant de développer des programmes que de les transformer en service
informatique. Lorsque l'informatique aura passé cette étape, elle quittera sans doute son statut de technologie émergente pour passer à celle de technologie mature, c'est à dire au sein de celles qui rendent le service que l'on demande. |
Liens
Les curieux pourront se reporter à :
- site http://inventors.about.com
- http://dept-info.labri.u-bordeaux.fr/~dicky/HistInfo.html
- http://www.maxmon.com/timeline.htm
On pourra se reporter à certains travaux de Dijkstra
- A constructive approach to the problem of program correctness
- Notes on Structured Programming
- Cooperating sequential processes
- Structured programming