Formation
Formation . Partage de bonnes pratiques . formation au numériqueTranche de formation toi-même ! (chapitre 9 : et le premier programmeur est une programmeuse… )
Pour naviguer dans les slides : cliquer, glisser, ou encore ← → au clavier.
Chapitre 09 Slide 0
Avançons encore dans cet historique et projetons nous en 1820, en Grande Bretagne. Ce que nous voyons à l´écran ce sont des tables astronomiques. Une table astronomique permet de prévoir la position des étoiles longtemps à l´avance. C´est très important pour un domaine d´activité en particulier : la navigation en mer. Ces tables permettent en effet aux bateaux de se repérer à la surface du globe. En observant les étoiles, et en connaissant à l´avance leur position, ils peuvent ainsi se situer et fixer le cap. Malheureusement, la production de ces cartes est soumise à des calculs très complexes (des polynômes) qui sont longs, fastidieux et surtout... pour lesquels on peut facilement faire des erreurs. Et une erreur dans un calcul de polynôme, quand il permet de prévoir la position des étoiles et donc de fixer le cap pour un bateau, ça se traduit en accident et donc en pertes de vies humaines et de richesses.
Chapitre 09 Slide 1
C´est dans ce contexte qu´intervient Charles Babbage. Babbage est responsable d´une équipe chargée de faire ces calculs et d´écrire les tables astronomiques. Il sait bien que ces calculs sont difficiles et sujets à erreur. Il est alors particulièrement motivé par l´idée de créer une machine qui serait capable de réaliser ces calculs de manière automatique. On donnerait à cette machine les paramètres de polynômes en question et elle donnerait le résultat. Il prévoit de lui donner le nom de "machine à différences". Babbage va trouver son gouvernement en leur expliquant le bienfondé de son projet et se voit financer ses travaux et sa machine. Mais Babbage doit alors faire face à deux problèmes. Le premier problème de Babbage c´est que la technologie de l´époque est encore trop limitée pour lui fournir les pièces dont il a besoin. Il lui faut des mécanismes d´une telle finesse qu´elles sont très difficiles à fabriquer. Le deuxième problème de Babbage c´est que... c´est un scientifique 😀 ! Il n´a pas encore fabriqué sa première machine qu´il pense déjà à faire mieux. Il trouve que sa première machine serait finalement limitée à ne faire que des calculs de polynômes. Il pense pouvoir fabriquer une machine capable de faire plusieurs types de calculs. En fait, bien mieux que cela, il pense pouvoir fabriquer une machine capable de faire n´importe quel type de calcul que l´on peut décrire ! Une machine à laquelle on pourrait dire "Tiens, maintenant tu vas faire une addition, voilà comment tu dois faire pour réaliser une addition, et voilà les deux nombres sur lesquels tu dois la faire" et puis plus tard "tu vas faire un polynôme, voilà comment faire et voilà les paramètres" et ainsi de suite, en donnant les instructions qui permettent de réaliser le calcul puis les données (les paramètres) de ce calcul. Babbage retourne voir son gouvernement et j´aime imaginer qu´il leur dit, très enthousiaste, quelque chose comme "Alors là ça va vous épater ! J´ai beaucoup mieux que la machine à différence, ça s´appelle la machine analytique ! ". Malheureusement pour Babbage la réponse fut quelque chose comme "Bah oui mais bon... on n´a toujours pas vu ta machine à différences donc... pour financer une autre machine maintenant... ça va être compliqué...". Babbage n´aura donc pas les moyens de fabriquer la machine à différences, ni la machine analytique. Pourtant, avec sa machine analytique, il avait posé exactement les principes d´un ordinateur. Elle était prévue pour 1) être configurable ou programmable afin de suivre des instructions permettant de réaliser un calcul 2) prendre des données (ou des paramètres) sur lesquelles appliquer ces instructions et 3) sortir le résultat de manière lisible en fin de calcul. À ce moment du slide, j´aime bien dire que "d'une certaine manière, l'ordinateur aurait pu voir le jour un siècle plus tôt, si on n´avait pas coupé les crédits de la recherche, ceci est un message non-subliminal 😀 ".
Chapitre 09 Slide 2
Cela dit, Babbage a beaucoup de chance parce que son travail va intéresser la première personne au monde à avoir écrit un programme informatique. En fait, le premier programmeur au monde... est une programmeuse ! Ada Lovelace est une mathématicienne passionnée par les questions scientifiques et… c’est une femme ! Quand elle rencontre Babbage et prend connaissance de ses travaux elle y voit le potentiel que Babbage lui-même n´avait peut-être pas vu. Disons qu´avec sa machine analytique, Babbage pensait faire une sorte de "calculatrice programmable" alors qu’Ada voyait dans cette machine tout le potentiel de ce que sont les ordinateurs aujourd´hui. Elle comprend que les possibilités de cette machine ne se limiteraient pas à des questions de calcul, mais qu'elle serait capable de traiter tout problème qu´on pourrait exprimer sous forme de suite d´instructions... et donc n´importe quel algorithme ! Il pourrait alors s´agir de calculer une suite mathématique, de faire un pronostic pour les courses de chevaux (Ada pensait d´ailleurs pouvoir faire de tels pronostics et ainsi financer la machine de Babbage, mais cela causera sa ruine) ou encore gagner à un jeu tactique (disons le jeu du morpion, par exemple). Elle va publier ses travaux dans un contexte difficile pour les femmes, qui ne sont pas encore autorisées à avoir officiellement un cerveau... Elle va soutenir Babbage dans ses travaux et anticiper tout ce que cette machine serait capable de faire. Et Ada va finalement écrire, sous forme de cartes perforées, le programme qui permettrait de calculer, sur cette machine, la suite de Bernoulli. D´ailleurs, un langage de programmation porte aujourd'hui le nom d'ADA. C'est un très beau langage (je le sais... j'ai appris à programmer avec ^^ ). Si on peut donner un jour son nom à un langage de programmation... franchement ADA c'est la classe !