Les programmeuses de l'ENIAC
Dans les années 1940, la programmation des ordinateurs n'était pas des plus simple. Bardés de tubes à vide, de diodes à cristal, de relais et de connecteurs,
leur programmation consistait à imaginer sur le papier les réglages et connexions nécessaires à un calcul et à se rendre ensuite sur la machine pour réaliser
effectivement les manipulations prévues.
C'est ainsi que six femmes, Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Meltzer, Fran Bilas, et Ruth Lichterman ont programmé l'ENIAC en 1945. Pendant ce temps-là,
les hommes étaient partis à la guerre ou bien se réservaient, en bons machistes (ce qui n'a pas beaucoup changé depuis), les tâches considérées plus nobles comme la
conception et l'analyse. Oubliées de l'histoire, elles furent réhabilitées dans un documentaire récent
"The Remarkable Story of the ENIAC Programmers".
Une partie du Manchester Mark I
Le traitement par ordinateur était donc plutôt complexe et surtout très cher et peu fiable. De nombreux tubes brûlaient chaque jour laissant l'ENIAC inopérant
la moitié du temps. À tel point que, de son côté, IBM prédisait qu'il y avait un marché mondial pour cinq ordinateurs, pas plus.
Il manquait juste quelques zéros pour arriver à nos cinq milliards d'ordinateurs actuels (estimation à la louche).
Si la technologie n'avait pas évolué et si nous disposions tous d'un ENIAC, il faudrait donc au moins trente milliards de programmeurs pour les faire fonctionner.
Blague à part, il va falloir s'organiser.
Bande perforée
Un premier progrès fut la possibilité d'écrire les programmes en mémoire, conformément à l'architecture de von Neumann, plutôt que d'être obligé de manipuler des
connecteurs pendant des heures. À cette fin, des tubes de Williams ont été expérimentés dans le SSEM dont on a déjà parlé, et c'est le Manchester Mark I qui a réalisé
le premier cet exploit.
Dans le même temps, les programmes, au lieu d'être mis en service par des positionnements d'interrupteurs, ont été rapidement mis en mémoire par des téléscripteurs
dotés de bandes à cinq trous, puis par d'autres lecteurs de bandes ou de cartes plus élaborés.
Grace Hopper
Les compilateurs firent ensuite leur apparition. C'est encore une fois une femme, Grace Hopper, qui a créé en 1951 le premier compilateur. Elle l'a appelé A-0 System.
Grâce à ce compilateur, il "suffisait" de décrire le programme comme une séquence de sous-programmes identifiés par des codes numériques. Ces codes, ainsi que les
paramètres nécessaires à leur fonctionnement, étaient alors traduits par A-0 System dans le langage compréhensible directement par la machine, le code machine.
Trieuse de cartes perforées
La programmation des ordinateurs devenait donc plus rapide et sans doute un peu plus fiable. D'autant plus que si un programmeur avait écrit une longue séquence
d'instructions qui avait fait ses preuves et qui pouvait être réutilisée dans d'autres programmes, il n'allait pas s'en priver. Il n'avait même pas besoin de les recopier.
Il lui suffisait, par exemple, d'identifier la série de cartes perforées correspondante et de la récupérer pour l'insérer telle quelle dans un nouveau programme à la
prochaine occasion ! Ces séquences, appelées routines vont devenir dans le futur, des fonctions, des procédures, des "libraries" (bibliothèques)...
Couverture de
"The Fortran Automatic Coding System for the IBM 704"
Autre progrès majeur : la création de langage évolué. La compilation va permettre de s'éloigner de plus en plus du code machine, d'écrire dans des langages symboliques
beaucoup plus facilement compréhensibles pour les humains, et de laisser le travail de traduction en code machine aux compilateurs.
Le premier langage dit "évolué" sera le FORTRAN en 1954. Des milliers d'autres suivront...
De nombreux outils et concepts facilitant la tâche des programmeurs verront le jour au fil du temps : éditeurs de code, environnement de développement,
interface de programmation, interpréteurs, langage orienté objet, framework... s'ajouteront à l'algorithmique déjà largement utilisée.
Logos du framework Eclipse
Bon, maintenant, n'allez pas croire que tous ces outils vont rendre ridiculement facile le développement d'applications.
Par rapport aux programmes des années 1940, les besoins vont extraordinairement se diversifier, les matériels et les concepts vont être de plus en plus sophistiqués.
Pour s'y retrouver, il va donc maintenant falloir approfondir un tant soit peu toutes les notions que l'on vient d'évoquer.