Outils, machines et informatique
À la mémoire de Robin Milner et Amir Pnueli.
Le rapport de l’informatique aux outils et aux machines est si profond que l’on peut dire que science du calcul, l’informatique est aussi science de l’outil et science de la machine.
Des outils pour effectuer des actions
Les outils jouent un rôle fondamental dans toutes les sociétés et ce, depuis les temps préhistoriques les plus reculés, depuis que l’homme est devenu « homo faber », l’homme qui fabrique.
Un outil, une pioche, une bêche, un marteau, ce n’est pas seulement un objet : c’est le fruit d’une réflexion sur des matières à travailler, des actions que l’on peut effectuer sur cette matière, et une gestuelle pour manier l’outil, pour effectuer les actions nécessaires à l’obtention d’un certain résultat. Même si, chez le manieur d’outil, l’expérience et l’instinct qu’elle a induit l’emporte souvent sur la réflexion consciente, avant tout maniement de l’outil approprié, il convient de savoir ce que l’on veut faire et concevoir une suite de gestes qui permettront d’obtenir le résultat voulu.
Or rien ne ressemble plus à un programme informatique que la description de la suite des gestes que l’ouvrier (au sens propre, de celui qui œuvre) doit effectuer, comme en témoigne cet extrait du Manuel de la coupe des pierres de L. Mugnier, Librairie J.B. Baillière & fils, Paris 1923 :
Pour tailler une pierre sur toutes ses faces, d’après le tracé, l’ouvrier doit commencer par la mettre en chantier, c’est-à-dire, tenir légèrement inclinée la face dont il veut faire le lit ou parement; pour dresser et dégauchir cette face, il fera d’abord ce que l’on appelle une plumée, opération qui consiste à dresser un des bords de la pierre sur une largeur de l’outil dont on dispose. Il appliquera sur cette plumée une règle parfaitement de jauge, c’est-à-dire dont les arêtes sont parallèles ; avec une autre règle, également de jauge, il se placera au bord vertical opposé et, en fermant un œil pour regarder de l’autre, ce que l’on appelle hornoyer, il fera ainsi une deuxième plumée qui sera dans le même plan que la première, on dit alors qu’elles se dégauchissent.
Ce manuel fait 270 pages, la bibliothèque professionnelle de Baillière & fils comporte 150 titres du même tonneau, de petit format, facile à transporter avec soi sur un chantier.
La similitude avec un programme informatique est manifeste dans l’emploi de tout un vocabulaire pour désigner à la fois l’objet des transformations à opérer, ici la « pierre » qui a des faces et des bords, et les transformations elles-mêmes, ici les « plumées », dans un langage plus ou moins ésotérique, incompréhensible à celui qui ne le connaît pas et qu’il convient donc d’apprendre.
Les manuels professionnels, les modes d’emploi d’outils divers, les manuels d’entretien ou de réparation de machines, les livres de cuisine, les livres de conseil en jardinage sont légions. Toutes les techniques possibles et imaginables ont donné naissance à une littérature du même genre, chacune ayant engendré son langage par adjonction au français d’éléments du vocabulaire et d’abréviations, généralement pour désigner des opérations déjà complexes et répétitives que l’on définit une fois pour toutes et que l’on utilise ensuite, comme c’est le cas pour une « procédure » ou un « sous-programme » dans un programme informatique.
Des machines qui fonctionnent toutes seules
Les outils se sont complexifiés et des machines ont été construites, c’est-à dire des outils qui utilisent une force autre que celle de l’ouvrier, celle d’un animal, ou la force hydraulique d’une roue de moulin. On peut définir une machine comme un outil qui fonctionne plus ou moins tout seul, bien que l’on puisse classifier les machines en automatiques, celles que l’on met en marche et qui ne s’arrêtent qu’une fois le travail achevé, et semi-automatiques, qui nécessitent l’intervention constante d’un opérateur humain.
Au début du dix-huitième siècle, les automates de Jacques de Vaucanson, le joueur de flûte, le joueur de gaboulet et le canard qui digère, ont provoqué un grand étonnement. Vaucanson, compagnon soyeux, était un mécanicien de génie qui avait fait de fortes études de mécanique appliquée et d’anatomie et avait entrepris de construire des machines qui fassent la même chose qu’un homme ou un animal. Le succès de ses premières machines lui a valu la charge d’inspecteur des soieries royales, dans laquelle il a inventé et mis au point plusieurs machines fort utiles dans le travail de la soie. On peut le considérer comme l’ancêtre des roboticiens.
Les automates de Pierre Jaquet-Droz, que l’on peut voir au musée de Neuchâtel, en particulier l’automate écrivain, construits vers 1780, contiennent plus explicitement que ceux de Vaucanson un programme que l’on peut modifier avant de lancer la machine qui exécute alors ce que le programme lui dit de faire. Et c’est peu après, en 1801, que Joseph-Marie Jacquard, fils de canut lyonnais, invente le métier à tisser qui porte son nom et qui va révolutionner toute l’industrie textile : un véritable programme enregistré sur un rouleau de carton perforé, analogue à celui d’un orgue de barbarie, permet d’effectuer la sélection des fils de chaîne et autorise la fabrication des motifs les plus compliqués. Les machines à tisser ou tricoter modernes sont des perfectionnements du métier Jacquard. Si l’on veut voir d’extraordinaires machines, comme celle à tricoter douze paires de chaussettes à la fois, il faut aller au musée de la bonneterie dans l’hôtel de Vauluisant à Troyes en Champagne.
Les boîtes à musique, encore fabriquées de nos jours, sont aussi des machines à programme, celui-ci revêtant la forme d’un cylindre hérissé de petites excroissances qui, lorsque le cylindre tourne, soulèvent les lames vibrantes produisant les sons : la première de ces boîtes semble avoir été décrite en 1796 par un certain Antoine Favre, dans un mémoire présenté au Comité de Méchanique de Genève.
Ainsi, dès le début du dix-neuvième siècle, la notion de machine programmable est non seulement acquise mais opérationnelle : quand on la met en marche, la machine effectue seule le travail d’un ou plusieurs ouvriers, travail défini par un programme que l’on a écrit et enregistré sur un cylindre ou sur des cartes perforées. L’on voit bien que le progrès est considérable par rapport à un outil à main ou une machine strictement répétitive, qui ne sait effectuer qu’une opération ou une série d’opérations.
Et l’ordinateur n’est pas loin. La machine analytique du mathématicien anglais Charles Babbage, que l’on peut voir au musée des Sciences de Londres, n’a pas été construite du vivant de son inventeur mais pour célébrer le deux-centième anniversaire de sa mort, en 1991. Elle est construite dans le fidèle respect des plans de la machine n° 2 de Babbage, datant de 1836, plus économique que la machine n° 1, la machine des différences qu’il avait présentée à la Société Royale en 1823. Tous les composants d’un ordinateur moderne sont là, unité centrale, entrées-sorties, mémoire, programme enregistré : la machine était destinée au calcul des polynômes et à l’élaboration de tables de logarithmes. Ce qui manque – et distingue radicalement la machine de Babbage de nos ordinateurs – c’est la possibilité pour la machine de modifier son propre programme.
Des machines qu’il faut contrôler
Le dix-neuvième siècle est le siècle de la vapeur, de la métallurgie, de la mécanique, des engrenages, des turbines. Des sciences se constituent ou s’affirment et les machines se multiplient tout en devenant de plus en plus sophistiquées. En particulier, on apprend à les réguler : on les règle à la main avant de les mettre en route, les possibilités de réglage augmentent considérablement et on invente des régulateurs automatiques, dont le plus célèbre est le régulateur à boules qui empêche les machines à vapeur de s’emballer et maintient leur vitesse constante. C’est James Watt, le célèbre inventeur anglais du système bielle-manivelle, qui invente aussi ce régulateur, premier exemple de rétroaction utilisé dans l’industrie, et première préfiguration de ce que deviendront plus tard l’automatique et la cybernétique.
Qu’il s’agisse d’un haut fourneau, d’un laminoir, d’une coulée de glace en continu, d’une colonne de distillation, les très grosses machines doivent être contrôlées en permanence : ce contrôle peut être exercé par des humains qui ont sous les yeux des cadrans sur lesquels autant de capteurs indiquent la valeur d’un paramètre de la machine en fonctionnement, une vitesse, une température, une pression et aussi des valeurs de paramètres de l’environnement susceptibles d’influer sur la bonne marche de la machine. Dès qu’un capteur indique une valeur anormale, l’opérateur humain agit sur des commandes qui sont à sa disposition comme autant de manettes, pour ramener le paramètre à la normale ou tenir compte de la valeur d’un paramètre extérieur. Évidemment, l’on cherche à automatiser tout ce qui peut l’être, c’est-à-dire faire en sorte que ce soit la machine elle-même qui, détectant la valeur anormale du paramètre, prenne les mesures propres à le ramener à la normale sans intervention humaine.
Tout au long du siècle qui va de 1850 jusqu’à l’avènement des ordinateurs modernes, la régulation est essentiellement semi-automatique, mélangeant automatismes véritables et interventions humaines : le meilleur exemple est la « machine » que constitue la voie de chemin de fer de Paris à Orléans et la cinquantaine de trains qui y circulent en permanence. Toute une signalisation automatique permet au conducteur de savoir si la voie est libre et à quelle vitesse il peut rouler : ce n’est pas automatique, car c’est le conducteur qui arrête le train et le fait repartir et non le train qui s’arrête et repart de lui-même.
De plus, il y a une cellule de gestion centralisée (je l’ai visitée en 1960, au premier étage de la gare d’Austerlitz) où des employés tiennent à jour en permanence la position des trains à partir d’informations envoyées par téléphone par les chefs des gares du parcours : cette cellule n’intervient pas en marche normale, si tous les trains avancent à la vitesse voulue pour respecter un horaire préétabli, mais elle intervient dès qu’un incident se produit, ralentissant un train ou l’immobilisant sur la voie. Il convient alors de prendre des décisions pour pouvoir écouler le trafic au mieux, compte tenu de cet incident, en faisant se ranger des trains lents pour autoriser le passage du rapide arrivant de Bordeaux qui a une priorité absolue.
La plupart des incidents sont résolus sans trop de mal, mais de temps en temps, un incident plus grave, impliquant plusieurs trains, immobilise tout le système et peut demander beaucoup de temps avant que le trafic puisse être rétabli.
Le triangle de Gagny est un cas d’école : trois voies très fréquentées s’y croisent en formant un petit triangle et il faut assurer un trafic maximum en évitant bien évidemment tout risque de collision.
Je ne sais pas si aujourd’hui, la voie Paris Orléans et le triangle de Gagny sont gérés de façon entièrement automatique, ce qui voudrait dire qu’une machine prendrait en compte même les catastrophes, déraillement d’un train faisant plusieurs morts et bloquant tout le trafic, organisant aussi bien les secours que le déroutement des autres trains en circulation…
Des machines pour gérer l’information
Vers 1870 à Chicago, des gens se sont mis à essayer de résoudre des problèmes d’une autre nature, problèmes de gestion de stocks d’une entreprise ou d’un magasin, problèmes de comptabilité, problèmes de statistiques, problèmes de rangement du nombre considérable de documents et de bordereaux qu’engendre la gestion de ces stocks et leur commercialisation. En 1890, Hermann Hollerith, chargé du recensement de la population aux Etats-Unis, utilise comme support de l’information concernant chaque citoyen la carte perforée à quatre vingt colonnes, que l’on appelle parfois carte Hollerith, et des machines pour les lire, les trier ou les ranger, extraire d’un paquet de cartes celles qui présentent certaines caractéristiques, etc. La mécanographie est née. Elle va prendre une extension considérable grâce à trois grandes compagnies, IBM qui est l’héritière de l’entreprise de Hollerith, la Remington Rand Corporation et en France la compagnie Bull. Cette dernière porte le nom de l’ingénieur norvégien Fredrik Bull, qui a fondé une entreprise en Norvège en 1920, entreprise qui à sa mort prématurée en 1925 devient suisse puis vers 1930 française, à capitaux majoritairement français. La crise de 1929 est bénéfique pour la mécanographie, qui apparaît comme un des moyens de rationaliser le travail dans de très nombreux commerces, entreprises ou administrations. Il semble que l’armée allemande, qui s’était équipée en matériel mécanographique, a pu grâce à cela mobiliser ses troupes et leur matériel beaucoup plus rapidement que l’état-major français, qui ne croyait pas en la mécanographie. Il faut noter que les machines mécanographiques étaient dotées de circuits logiques à lampes pour effectuer des calculs booléens et que tout cela avait fait se constituer une Théorie de la commutation (nous traduisons ainsi Switching Theory) qui était loin d’être nulle ou triviale et qui servait aussi à la conception des centraux téléphoniques électro-mécaniques. La mécanographie, mais aussi le télégraphe et le téléphone, ont introduit l’habitude de manipuler l’information sous forme codée par des suites de symboles. Le code Morse, du nom de son inventeur, Samuel Morse, vers 1835, n’a même pas complètement disparu à l’heure d’internet. Certaines fréquences radios restent en effet réservées à la communication en Morse, considéré par la militaires comme un système de secours. Même des images traversaient l’Atlantique, par le câble sous-marin, sous la forme de belinogrammes : le belinographe, qui porte le nom de son inventeur Edouard Belin, a été utilisé par les photographes de presse depuis son invention en 1907 jusque dans les années 1970. Placée sur un cylindre, la photo est analysée par une cellule photo-électrique qui transforme les niveaux de gris en fréquences. À l’autre bout, un cylindre semblable porte du papier photographique que l’on éclaire avec une intensité dépendant de cette fréquence. L’envoi d’une photo 10×15 pouvait prendre douze minutes.
Vers l’informatisation : l’information au centre de la machine
Les premiers ordinateurs naissent modestement vers 1940, le tout premier à programme enregistré et logique binaire, construit en 1937 par Konrad Zuse, ingénieur allemand, est suivi en 1943 par celui de l’américain Aiken. En 1944, le physicien théoricien John Von Neumann décrit la première architecture dite de Von Neumann qui a triomphé et est celle de l’immense majorité des ordinateurs aujourd’hui. La nouveauté, essentielle, est que le programme est stocké dans la même mémoire que les données et est ainsi susceptible de calcul, ce qui permettra dans les années soixante l’écriture de compilateurs pour des langages symboliques de programmation de haut niveau et le véritable essor de l’informatique. Claude Shannon, en définissant et quantifiant en 1947 la notion d’information, fonde la théorie du même nom et ouvre la voie à des progrès substantiels dans de nombreux domaines cruciaux comme celui du codage et du cryptage. D’une certaine façon, c’est grâce à lui que s’impose l’idée que toute information est représentable par une suite de bits. Cette idée, ayant triomphé, fait que l’on peut parler aujourd’hui de la numérisation du monde. C’est l’unification de la représentation binaire de toute l’information qui circule dans le monde qui est la source de l’incroyable succès de l’informatique : nous nous sommes habitués à la forme numérique qu’ont pris tous les textes, toutes les images, toute la musique, mais la numérisation ne s’arrête pas là. Par exemple, la pression exercée par le pied de l’automobiliste sur la pédale de frein est une information qui, jadis, se transmettait par voie mécanique, c’est-à-dire un système de tringles, aux mâchoires du frein. Aujourd’hui numérisée, cette même information est transmise au frein par voie électronique et elle peut en chemin être modifiée, si par exemple, des capteurs indiquent à la voiture que le sol est glissant et que le coup de frein donné par le conducteur induit un risque de dérapage.
L’idée de mettre l’information au centre de la machine revient au flamboyant mathématicien Norbert Wiener qui, lors d’un congrès inaugural à Paris en 1951, fonde la cybernétique, science de toutes les machines, où celles-ci sont définies comme tous les appareils (en anglais devices) qui transforment une information d’entrée en une information de sortie. Le succès des idées émises par Wiener est immense. Il alimente une vaste littérature, souvent tout à fait excessive : on annonce la création de cerveaux non humains et de robots intelligents, de façon certainement prématurée. Victime à la fois des espoirs qu’elle avait fait naître trop tôt et de la personnalité de son auteur, qui supporte mal les critiques et fustige à l’envi ses détracteurs, la cybernétique disparaît pratiquement du discours scientifique et technique : la machine intelligente et autorégulée que concevait Wiener s’efface au profit de l’ordinateur, qui en est en quelque sorte l’antithèse, dans la mesure où il ne sort rien de l’ordinateur que ce que l’on y a mis au préalable et où il ne prend pas d’initiative. Les idées de Wiener sont en partie reprises par l’intelligence artificielle, mouvement lancé par John Mac Carthy en même temps que son langage de programmation, Lisp, si différent des autres que l’on mettra beaucoup plus longtemps à le comprendre et à savoir le compiler. Le terme « intelligence artificielle » est malheureux, car l’intelligence que l’on peut mettre dans la machine n’a rien d’artificiel, c’est l’intelligence de l’homme qui écrit le programme en fonction duquel la machine prendra la décision prévue, selon la situation dans laquelle elle se trouve et son environnement. Mais l’intelligence artificielle a mis beaucoup de gens au travail sur des sujets qui se sont révélés très utiles et féconds : étude des interactions entre l’homme et la machine, ergonomie de la machine, collecte et archivage de savoir-faire sous forme de systèmes experts ou ensemble de règles destinées à savoir que faire dans telle ou telle situation. Oubliée, la cybernétique, quelque peu décriée – beaucoup parce que survendue – l’intelligence artificielle ont toutes deux beaucoup contribué aux rapports actuels de l’informatique avec les machines.
Les machines à l’ère du numérique
La donnée essentielle aujourd’hui est qu’il y a beaucoup plus de puces électroniques dans les machines de toutes natures que dans les ordinateurs en service à la surface de la planète. Car toutes les machines en contiennent et leur nombre va croissant. Une grande partie de l’innovation technologique consiste à informatiser, à l’intérieur des machines, des fonctions qui ne l’étaient pas, soit pour améliorer les performances, soit pour augmenter la fiabilité, soit pour confier à la machine des opérations qui étaient jusqu’alors confiées à l’opérateur humain conduisant ou utilisant la machine, soit pour ajouter des capteurs qui améliorent la connaissance de l’état de la machine ou bien la connaissance de l’environnement dans lequel elle fonctionne. Comme corollaire, l’industrie emploie de plus en plus d’informaticiens. Par exemple, il y a désormais une majorité d’informaticiens dans le groupe Thales, dont le métier n’est pas l’informatique.
Pour la plupart des machines que nous utilisons, il en découle des performances accrues, une plus grande fiabilité, une meilleure résistance aux pannes et à l’usure (toutes les transmissions électroniques d’information n’engendrent pas de frottement donc pas d’usure), un maniement plus commode, une diminution de l’intervention humaine, un réactivité plus grande et rapide aux incidents qui peuvent se produire. Quant aux grands systèmes, ou aux systèmes très rapides, avions de ligne, trains à grande vitesse, centrales nucléaires, rampes de lancement de fusées, ils ne se conçoivent plus sans informatique. En effet, ils seraient sans elle totalement ingérables, et même probablement inconcevables, l’informatique étant aussi indispensable à la conception et à la réalisation d’objets aussi complexes. Historiquement, on peut distinguer plusieurs phases dans le développement de cette informatique « utile ». Utile, ustensile, outil proviennent du même mot latin « utilis », signifiant « qui sert », c’est pourquoi je propose que l’on appelle informatique utile, cette informatique qui n’est pas en soi un outil qui se suffirait à lui-même, mais qui sert à fabriquer de nouveaux outils et à en perfectionner de plus anciens, l’informatique invisible qui est dans l’outil dont on se sert mais que l’on ne voit pas.
Jusqu’en 1960, les ordinateurs étaient vraiment des curiosités rares et très difficiles à utiliser. De 1960 à 1980, les ordinateurs sont encore gros, lourds, chers mais grâce aux langages de programmation, que l’on apprend à compiler entre 1960 et 1970, leur usage se répand aussi bien dans le monde scientifique que dans celui de la gestion. Les bases de l’algorithmique et de la programmation sont posées et une foule d’algorithmes sont inventés ou découverts pour résoudre les problèmes les plus divers. À partir de 1980, la miniaturisation des circuits, qui fait qu’une unité centrale tient sur un centimètre carré de silicium, permet la fabrication d’ordinateurs de bureau ou portables, qui depuis gagnent chaque année en vitesse et en puissance. Une autre conquête de l’informatique à partir de 1980 est la programmation en temps réel et répartie : on ne s’était guère occupé jusque là que de programmes séquentiels exécutables par un ordinateur monoprocesseur calculant à son rythme un résultat. Les programmes destinés à faire coopérer plusieurs processeurs ou agents, comme des capteurs, ou des pièces mécaniques, sont d’une tout autre nature : d’abord, ils ne sont généralement pas destinés à s’arrêter, ensuite ils doivent de façon essentielle tenir compte du temps, c’est-à-dire synchroniser les divers agents qui composent le système. Le programme de contrôle d’un système mécanique comme un moteur d’avion est typiquement un tel programme. Amir Pnueli et Robin Milner ont tous deux été des pionniers de cette informatique temps réel ou embarquée qui a permis de concevoir et réaliser les plus étonnantes et les plus sophistiquées des machines actuelles.
Conclusion
À toutes les époques, de la Préhistoire à l’ère du numérique, l’être humain calcule. Le calcul n’est pas seulement numérique, comme l’usage du mot en français tend à le faire croire : l’homme préhistorique qui débitait sans doute par percussion un bloc de silex en lames de rasoir au tranchant aussi acéré que celui des rasoirs en acier de Solingen calculait, il calculait son coup, la trajectoire de la masse qu’il utilisait pour frapper le bloc à tailler, il choisissait le point d’impact et la force à donner au coup. Nous calculons à vrai dire tout le temps, et en particulier chaque fois que nous décidons d’utiliser un outil ou une machine pour faire quelque chose, quoi que ce soit, nous calculons ce que peut faire l’outil en fonction du but que nous cherchons à atteindre. L’intérêt fondamental de l’informatique est de fournir les concepts de base et des méthodes pour expliciter ces calculs, et dans de nombreux cas nous aider à les faire, parfois les faire à notre place. Il n’y a rien d’artificiel là-dedans, ni même de mystérieux. Pour faire quelque chose, l’homme doit avoir une information précise sur ce qu’il veut faire, les matériaux et les outils qu’il peut utiliser, il doit concevoir une suite d’opérations qui lui permettront d’atteindre le résultat voulu, c’est-à-dire un algorithme, il doit construire son programme de travail ou d’action et le formuler dans un certain langage, il doit enfin exécuter ce programme. L’informatique ne fait que préciser le sens des mots soulignés. Mais c’est en faisant cela qu’elle a déjà beaucoup transformé notre monde et que, manifestement, elle va continuer à le faire. Tout récemment, depuis que cet article a été écrit, le concours Lépine a décerné son premier prix 2010 au Top Braille, inventé par Raoul Parienti. Cette petite machine portable, destinée à permettre aux non voyants de lire n’importe quel livre en transformant les lettres en caractères Braille, est une magnifique confirmation de notre propos. Voici un outil qui va transformer la vie de nombreuses personnes, créé et mis au point grâce à l’informatique. On notera que ce n’est pas le premier outil mis au point grâce à l’informatique pour aider des handicapés à mieux vivre. Depuis longtemps déjà, de tels outils apparaissent pour assister, monitorer, surveiller ou encore soulager les malades et les personnes dépendantes.
Newsletter
Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité
Niveau de lecture
Aidez-nous à évaluer le niveau de lecture de ce document.
Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !
Maurice Nivat