Poésie et esthétisme du logiciel

Un nouvel « entretien autour de l’informatique  ». Serge Abiteboul  et Claire Mathieu interviewent Gérard Huet , Directeur de recherche émérite à Inria. Gérard Huet a apporté des contributions fondamentales à de nombreux sujets de l’informatique, démonstration automatique, unification, édition structurée, réécriture algébrique, calcul fonctionnel, langages de programmation applicatifs, théorie des types, assistants de preuve, programmation relationnelle, linguistique computationnelle, traitement informatique du sanskrit,  lexicologie, humanités numériques, etc. Ses travaux sur CAML et Coq (voir encadrés en fin d’article) ont notamment transformé de manière essentielle l’informatique.

Gérard
Gérard Huet pendant l’entretien ©Serge A.

B : Tu as eu un parcours de chercheur singulier, avec des contributions fondamentales dans un nombre incroyable de sujets de l’informatique. Est-ce qu’il y a des liens entre tous tes travaux ?
G : Il existe des liens profonds entre la plupart de ces sujets, notamment une vision du cœur de la discipline fondée sur l’algèbre, la logique et les mathématiques constructives. Le calcul fonctionnel (le lambda-calcul dans le jargon des théoriciens) sous-tend nombre d’entre eux. Le calcul fonctionnel, pour simplifier, c’est une théorie mathématique avec des fonctions qui ne s’appliquent pas juste à des réels comme celles que vous avez rencontrées en cours de maths. Ces fonctions, ou plus précisément ces algorithmes, peuvent s’appliquer à d’autres objets et notamment à des objets fonctionnels. Vous pouvez avoir une fonction qui trie des objets. Vous allez passer comme argument à cette fonction une autre fonction qui permet de comparer l’âge de deux personnes et vous obtenez une fonction qui permet de trier un ensemble de personnes par ordre d’âge.

Ce qui montre que ce calcul fonctionnel est une notion fondamentale, c’est à la fois l’ossature des programmes informatiques, et dans sa version typée la structure des démonstrations mathématiques  (la déduction naturelle dans le jargon des logiciens). Vous n’avez pas besoin de comprendre tous les détails. La magie, c’est que le même objet mathématique explique à la fois les programmes informatiques et les preuves mathématiques. Il permet également les représentations linguistiques à la fois de la syntaxe, du discours, et du sens des phrases de la langue naturelle  (les grammaires de Lambek et les grammaires de Montague dans le jargon des linguistes).  Reconnaître cette unité est un puissant levier pour appliquer des méthodes  générales à plusieurs champs applicatifs.

Je suis tombé sur d’autres sujets au fil de hasards et de rencontres parfois miraculeuses.

Les programmes sont des preuves constructives

B : Les programmes sont des preuves. Ça te paraît évident mais ça ne l’est pas pour tout le monde. Pourrais-tu nous expliquer comment on est arrivé à ces liens entre programmes et preuves ?
G : Tout commence avec la logique mathématique.  En logique, il y a deux grandes familles de systèmes de preuves.  La première, la déduction naturelle, avec des arbres de preuves, c’est comme le lambda-calcul typé, et les propositions de la logique sont les types des formules de lambda-calcul. Ce n’est pas quelque chose qui a été compris au début. Le livre standard sur la déduction naturelle, paru en 1965, ne mentionne même pas le  λ calcul, car l’auteur n’avait pas vu le rapport. C’est dans les années 70, qu’on a découvert qu’on avait développé deux théories mathématiques équivalentes, chacun des deux domaines ayant développé des théorèmes qui en fait étaient les mêmes. Quand on fait le pont entre les deux, on comprend que, les programmes, ce sont des preuves.

Un arbre de preuve
Un arbre de preuve

En mathématiques, on raisonne avec des axiomes et des inférences pour justifier la démonstration des théorèmes, mais souvent on évacue un peu la preuve elle-même en tant qu’objet mathématique en soi. La preuve, pour un mathématicien, c’est comme un kleenex : on la fait, et puis ça se jette. La preuve passe, le théorème reste. D’ailleurs, on donne aux théorèmes des noms de mathématiciens, mais, les preuves, on s’en moque.  Ça, c’est en train de changer grâce à l’informatique. Pour nous, les preuves sont des objets primordiaux. Plus précisément, ce qui est important pour nous, ce sont les algorithmes. En effet, un théorème peut avoir plusieurs preuves non équivalentes. L’une d’entre elles peut ne pas être constructive, c’est à dire par exemple montrer qu’un objet existe sans dire comment le construire. Ça intéresse moins l’informaticien. Les autres preuves donnent des constructions. Ce sont des algorithmes. Un théorème dit par exemple que si on a un ensemble d’objets que l’on peut trier, alors on peut construire une séquence triée de ces objets. C’est un théorème – il est complètement trivial pour un mathématicien. Mais pour nous pas du tout. Si vous voulez trier un million d’enregistrements, vous aimeriez que votre algorithme soit rapide. Alors les informaticiens ont développé de nombreux algorithmes pour trier des objets qu’ils utilisent suivant les contextes, des preuves différentes de ce théorème trivial qui sont plus utiles qu’une preuve non constructive. Et ce sont de beaux objets !

Voilà, quand on a compris qu’un algorithme c’est une preuve, on voit bien que plusieurs algorithmes peuvent avoir la même spécification et donc que la preuve importe.

B : La mode aujourd’hui est d’utiliser le mot « code » pour parler de programmes informatiques. Tu ne parles pas de code ?
G : Au secours ! Le mot « code » est une insulte à la beauté intrinsèque de ces objets. La représentation d’un entier sous forme de produit de nombres premiers, on ne doit pas appeler cela un « codage » ! Non, cette représentation des entiers est canonique, et découle du Théorème Fondamental de l’Arithmétique. C’est extrêmement noble. Dans le terme « codage », il y a l’idée de cacher quelque chose, alors qu’au contraire, il s’agit de révéler la beauté de l’objet en exhibant l’algorithme.

L’esthétique des programmes

B : Les gens voient souvent les programmes informatiques comme des suites de symboles barbares, des trucs incompréhensibles. C’est beaucoup pour cela que le blog binaire milite pour l’enseignement de l’informatique, pour que ces objets puissent être compris par tous. Mais tu as dépassé l’état de le compréhension. Tu nous parles d’esthétique : un programme informatique peut-il être beau ?
GH : Bien sûr. Son rôle est d’abord d’exposer la beauté de l’algorithme sous-jacent. L’esthétique, c’est plus important qu’il n’y paraît.  Elle a des motivations pratiques, concrètes. D’abord, les programmes les plus beaux sont souvent les plus efficaces. Ils vont à l’essentiel sans perdre du temps dans des détails, des circonvolutions inutiles. Et puis un système informatique est un objet parfois très gros qui finit par avoir sa propre vie. Les programmeurs vont et viennent. Le système continue d’être utilisé. La beauté, la lisibilité des programmes est essentielle pour transmettre les connaissances qui s’accumulent dans ces programmes d’une génération de programmeurs à l’autre qui ont comme mission de pérenniser le fonctionnement du système.

Pour les programmes, de même que pour les preuves, il ne faut jamais se satisfaire du premier jet. On est content quand ça marche, bien sûr, mais c’est à ce moment là que le travail intéressant commence, qu’on regarde comment nettoyer, réorganiser le programme, et c’est souvent dans ce travail qu’on découvre les bonnes notions. On peut avoir à le réécrire tout ou en partie, l’améliorer, le rendre plus beau.

Vaughan Pratt, Wikipedia
Vaughan Pratt, Wikipedia

Prenez le cas d’Unix (*). Unix, c’est beau, c’est très beau ! Il faut savoir voir Unix comme une très grande œuvre d’art. Unix a été réalisé dans le laboratoire de recherche de Bell, par une équipe de chercheurs. Vaughan Pratt (+) disait dans les années 80 :« Unix, c’est le troisième Testament ». Vaughan Pratt, c’est quelqu’un d’incroyable ! Il ne dit pas n’importe quoi (rire de Gérard). Eh bien, Unix a été fait dans une équipe de spécialistes de théorie des langages et des automates. C’est une merveille de systèmes communiquant par des flots d’octets, tout simplement.  C’est minimaliste. Ils ont pris le temps qu’il fallait, ils ont recherché l’élégance, la simplicité, l’efficacité. Ils les ont trouvées !

B : Parmi tes nombreux travaux, y en a-t-il un qui te tient particulièrement à cœur ?
GH : Je dirais volontiers que mon œuvre préférée, c’est le « zipper ». C’est une technique de programmation fonctionnelle. Elle permet de traverser des structures de données les plus utilisées en informatique comme des listes et des arbres  pour mettre à jour leur contenu.

Le zipper (voir aussi la page), je suis tombé dessus pour expliquer comment faire des calculs applicatifs sur des structures de données, sans avoir cette espèce de vision étroite de programmation applicative où, pour faire des remplacements dans une structure de données, tu gardes toujours le doigt sur le haut de ta structure, ton arbre, et puis tu te balades dedans, mais tu continues à regarder ta structure d’en haut. Le zipper, au lieu de cela, tu rentres dans la structure, tu vis à l’intérieur, et alors, ce qui compte, c’est d’une part l’endroit où tu es, et d’autre part le contexte qui permet de te souvenir de comment tu es arrivé là. C’est une structure fondamentale qui avait totalement échappé aux informaticiens. Des programmeurs faisaient peut-être bien déjà du zipper sans le savoir comme M. Jourdain faisait de la prose. J’ai su formaliser le concept en tant que structure de donnée et algorithmes pour la manipuler. Maintenant, on peut enseigner le zipper, expliquer son essence mathématique.

La mystique de la recherche

B : Qu’est-ce qui est important pour réussir une carrière en recherche ?
GH : Le plus important finalement, dans le choix du sujet de recherche, ce sont trois choses : le hasard, la chance, et les miracles. Je m’explique. Premièrement, le hasard. Il ne se contrôle pas. Deuxièmement, la chance. C’est d’être au bon moment au bon endroit, mais surtout de savoir s’en apercevoir et la saisir.

Par exemple, dans le Bâtiment 8 (++) où je travaillais à l’INRIA Rocquencourt, il passait beaucoup de visiteurs. Le hasard c’est un jour la visite de Corrado Böhm , un des maîtres du lambda-calcul, une vraie encyclopédie du domaine. Je lui explique ce que je fais, et il me conseille de lire un article qui était alors, en 1975, inconnu de presque tous les informaticiens : c’était l’algorithme de Knuth-Bendix. C’est un résultat majeur  d’algèbre constructive permettant de reformuler des résultats d’algèbre de manière combinatoire. La chance, j’ai su la saisir. J’ai vu tout de suite que c’était important. Cela m’a permis d’être un précurseur des systèmes de réécriture  un peu par ce hasard. Voilà, j’ai su saisir ma chance. On se rend compte qu’il y a quelque chose à comprendre, et on creuse. Donc il faut être en éveil, avoir l’esprit assez ouvert pour regarder le truc et y consacrer des efforts.
À une certaine époque, j’étais un fréquent visiteur des laboratoires japonais. Une fois, je suis resté une quinzaine de jours dans un laboratoire de recherche.  Je conseillais aux étudiants japonais d’être en éveil, d’avoir l’esprit ouvert. Je leurs répétais : « Be open-minded! ». Ils étaient étonnés, et mal à l’aise de questionner les problèmes qui leur avaient été assignés par leur supérieur hiérarchique. Un an plus tard, je suis repassé dans le même labo.  Ils avaient gardé ma chaise à une place d’honneur, et ils l’appelaient (rire de Gérard) « the open-mindedness chair » !

B : Esthétique, miracle, troisième testament… Il y aurait une dimension mystique à ton approche de la recherche ?
GH : En fait, souvent, derrière les mystères, il y a des explications.  Un exemple : je suis parti aux USA sur le mirage de l’intelligence artificielle. Une fois là-bas, quelle déception. J’ai trouvé qu’en intelligence artificielle, la seule chose qui à l’époque avait un peu de substance, c’était la démonstration automatique. J’ai essayé.  Et puis, j’ai fait une croix dessus car cela n’aboutissait pas. Cela semblait inutile, et je voulais faire des choses utiles. Alors j’ai regardé ailleurs, des trucs plus appliqués comme les blocages quand on avait des accès concurrents à des ressources. Par hasard, je suis tombé sur deux travaux. Le premier, un article de Karp et Miller, m’a appris ce que c’était que le Problème de Correspondance de Post (PCP), un problème qui est indécidable – il n’existe aucun algorithme pour le résoudre.  Le second était une thèse récemment soutenue à Princeton qui proposait un algorithme pour l’unification d’ordre supérieur. Je ne vais pas vous expliquer ces deux problèmes, peut-être dans un autre article de Binaire. L’algorithme de la thèse, je ne le comprenais pas bien. Surtout, ça ne m’intéressait pas trop, car c’était de la démonstration automatique et je pensais en avoir fini avec ce domaine. Eh bien, un ou deux mois plus tard, je rentre chez moi après une soirée, je mets la clé dans la serrure de la porte d’entrée, et, paf ! J’avais la preuve de l’indécidabilité de l’unification d’ordre supérieur en utilisant le PCP. J’avais établi un pont entre les deux problèmes. Bon ça montrait aussi que le résultat de la thèse était faux. Mais ça arrive, les théorèmes faux. Pour moi, quel flash !  J’avais résolu un problème ouvert important. Quand je parle de miracle, c’est quelque chose que je ne sais pas expliquer. J’étais à mille lieues de me préoccuper de science, et je ne travaillais plus là dessus. C’est mon inconscient qui avait ruminé sur ce problème du PCP, et c’est un cheminement entièrement inconscient qui a fait que la preuve s’est mise en place. Mais il faut avoir beaucoup travaillé pour arriver à ça, avoir passé du temps à lire, à comprendre, à essayer des pistes infructueuses, à s’imprégner de concepts que l’on pense important, à comprendre des preuves.  C’est beaucoup de travail. La recherche, c’est une sorte de sacerdoce.

Bon, il faut aussi savoir s’arrêter, ne pas travailler trop longtemps sur un même problème. Faire autre chose. Sinon, eh bien on devient fou.

gerard2

Caml (prononcé camel, signifie Categorical Abstract Machine Language) est un langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes. Descendant de ML, c’est un langage de programmation directement inspiré du calcul fonctionnel, issu des travaux de Peter Landin et Robin Milner. À l’origine simple langage de commandes d’un assistant à la preuve (LCF), il fut développé à l’INRIA dans l’équipe Formel sous ses avatars de Caml puis d’OCaml. Les auteurs principaux sont Gérard Huet, Guy Cousineau, Ascánder Suárez, Pierre Weis, Michel Mauny pour Caml ; Xavier Leroy, Damien Doligez et Didier Rémy et Jérôme Vouillon pour OCaml.
Coq est un assistant de preuve fondé au départ sur le Calcul des Constructions (une variété de calcul fonctionnel typé) introduit par Thierry Coquand et Gérard Huet. Il permet l’expression d’assertions mathématiques, vérifie automatiquement les preuves de ces affirmations, et aide à trouver des preuves formelles. Thierry Coquand, Gérard Huet, Christine Paulin-Mohring, Bruno Barras, Jean-Christophe Filliâtre, Hugo Herbelin, Chet Murthy, Yves Bertot, Pierre Castéran ont obtenu le prestigieux 2013 ACM Software System Award pour la réalisation de Coq.

(*) Unix : Unix est un système d’exploitation multitâche et multi-utilisateur créé en 1969. On peut le voir comme l’ancêtre de systèmes aussi populaires aujourd’hui que Linux, Android, OS X et iOS.

(+) Vaughan Pratt est avec Gérard Huet un des grands pionniers de l’informatique. Il a notamment dirigé le projet Sun Workstation, à l’origine de la création de Sun Microsystems.

(++) Bâtiment 8 ; Bâtiment quasi mythique d’Inria (de l’IRIA ou de l’INRIA) Rocquencourt pour les informaticiens français, qui a vu passer des chercheurs disparus comme Philippe Flajolet et Gilles Kahn, et de nombreuses autres stars de l’informatique française toujours actifs, souvent à l’instigation de Maurice Nivat. Gilles Kahn sur la photo était une sorte de chef d’orchestre, parmi un groupe de chercheurs plutôt anarchistes dans leur approche de la recherche.

Gérard Huet avec Gilles Kahn (à droite) © David MacQueen au Bât 8 de Rocquencourt, 1978
Gérard Huet avec Gilles Kahn (à droite) © David MacQueen au Bât 8 de Rocquencourt, 1978

 

Dieu a-t-il programmé le monde en Java ?

Serge Abiteboul a rencontré pour Binaire Baptiste Mélès, un jeune philosophe des sciences qui sait aussi écrire du code informatique. Baptiste Mélès a étudié une analogie entre les langages de programmation orientés objet et la monadologie leibnizienne (n’ayez crainte !). Serge vous propose un article très simplifié de cette analogie qui, nous l »espérons, vous donnera envie d’aller lire l’article complet de Baptiste Mélès. La présentation détaillée de cette fameuse monadologie leibnizienne et les liens que Baptiste Mélès tisse avec la programmation orientée objet (avec des exemples de code) vous plongeront dans un univers passionnant où philosophie et informatique dialoguent.  Marie-Agnès Enard.

Philosophie des systèmes (puce bleue). Logique, mathématiques, informatique (puce verte). Pensée et mathématiques chinoises (puce rouge). Trois thèmes de recherche qui nourrissent la pensée de Baptiste Mélès.

En informatique, nous utilisons des « langages de programmation » pour dire aux machines ce que nous voulons qu’elles fassent. Ces langages sont très loin des « langages machines », c’est-à-dire des langages que comprennent les machines. Il est nécessaire d’avoir une phase de « compilation » où un programme dans un langage, par exemple Java, que parle le développeur (un être humain) est traduit dans un langage que comprend la machine. Comme une langue naturelle, un langage de programmation s’appuie sur un alphabet, un vocabulaire, des règles de grammaire ; comme dans une langue naturelle, les phrases des langages de programmation (on parle d’instructions) ont une significations.  Les différences entre les langages de programmation sont du même ordre que celles entre les langues que parlent les humains – les informaticiens ont juste réinventé Babel. Baptiste Mélès s’intéresse à la philosophie des connaissances mais il a aussi étudié les langages de programmation. Il m’a donc expliqué le lien entre la monadologie leibnizienne et les langages de programmation orientés objet d’où le titre de son article : Dieu a-t-il programmé le monde en Java ?

Baptiste Mélès est parti de taxonomies des langages de programmation et de taxonomies d’écoles de philosophies et il a montré des liens entre ces taxonomies. En résumé, il existe plusieurs grandes familles de langages de programmation : par exemple, les langages impératifs, fonctionnels, logiques, orientés objet. Chacune d’entre elle est « proche » d’une école de philosophie.  Pour illustrer cette thèse, Baptiste Mélès s’attache à la famille la plus populaire de nos jours, celle des langages de programmation orientés objet qui inclut des langages comme Java, OCAML, Python, C++, et Ruby. Il nous explique les liens avec la philosophie «monadologique» de Gottfried Wilhelm Leibniz (1646–1716).

La monadologie leibnizienne

Gottfried Wilhelm Leibniz ©wikicommon

Gottfried Wilhelm Leibniz, philosophe et scientifique allemand, voit la nature comme composée de substances simples, les monades, et de substances composées que nous ignorerons ici. Une monade est caractérisée par ses propriétés et par ses «actions internes». Ce qui distingue une monade d’un atome, c’est qu’elle est capable de  transformer son état, de réagir à son environnement, c’est-à-dire aux actions d’autres monades. Un monde est défini par les «essences» des monades qui le peuplent. (La vision du monde de Leibniz que je présente ici est évidemment hyper simplifiée par rapport à celle du philosophe.) C’est Dieu qui décide du comportement des différentes essences de monades et de leurs interactions.

Baptiste Mélès écrit : « Pour résumer, la théorie leibnizienne des monades est une doctrine métaphysique dans laquelle les concepts, créés par Dieu, sont organisés de façon hiérarchique et préexistent aux individus ; les individus sont des êtres atomiques et animés, qui, quoique enfermés sur eux-mêmes, n’en sont pas moins capables de se représenter le monde et d’agir sur lui en échangeant des messages grâce à l’action intermédiaire d’une harmonie préétablie par le créateur. »

La programmation orientée-objet

humanEn programmation orientée objet, le programmeur définit des types d’objets (des classes dans la terminologie orientée objet) et les comportements des objets dans ces classes. Concrètement, un objet est une structure de données dans un certain état (typiquement caché pour l’extérieur) qui répond à un ensemble de messages. L’ensemble des messages (des programmes) acceptés par l’objet détermine son comportement. Les objets interagissent entre eux par l’intermédiaire de ces messages. Il n’est pas nécessaire de connaître le programme correspondant à un objet pour pouvoir interagir avec cet objet. Il suffit de connaître son «interface», c’est-à-dire l’ensemble des messages qu’il comprend. (C’est sans doute ce principe d’indépendance qui est à la base du succès de la programmation orientée objet.)

L’analogie entre la monadologie leibnizienne et la programmation objet est claire. Les objets sont des monades. Les classes sont les «essences» de Leibniz. Si le Dieu de la Bible a créé l’homme à son image, les informaticiens ont façonné les développeurs orientés objet à l’image du Dieu de Leibniz. C’est tout sauf innocent.

Du dialogue entre la philosophie et de l’informatique

Les langages orientés objet permettent de mieux comprendre des concepts philosophiques qui peuvent paraître très abstraits. Par elle également, la philosophie permet d’expliquer les raisonnements complexes qui sous-tendent la programmation. Le dialogue entre philosophie et informatique enrichit bien les deux disciplines. On retrouve d’ailleurs dans ce dialogue un de mes thèmes favoris : l’informatique est un lieu naturel de rapprochement entre les sciences dites dures et les sciences humaines. (Voir texte sur les Humanités Numériques). Avec l’informatique, nous avons l’occasion de combler un fossé entre des sciences qui s’est construit depuis le 19ème siècle, et qui n’a pas lieu d’être.

Serge Abiteboul, Inria et ENS Cachan

Dessine moi les impôts !

Quand un ami de Binaire, Arnaud Sahuguet,  nous a suggéré de faire un article  sur «Openfisca», nous nous sommes demandés s’il était vraiment sérieux. La fiscalité est un sujet qui est loin d’exciter les foules. Comment intéresser le public du Monde sur un sujet comme informatique et fiscalité ? Et pourtant, c’est un sujet important qui nous concerne tous (que l’on paye ou pas des impôts). Nous avons décidé d’en savoir plus sur Openfisca et sur ses outils qui peuvent vraiment nous aider au quotidien. C’est donc Serge Abiteboul qui a relevé le défi de nous donner envie d’en savoir plus. Marie-Agnès Enard

Quand j’ai regardé le site Web de OpenFisca, je me suis dit qu’on pouvait faire plus aguicheur. Alors, j’ai envoyé un courriel à Openfisca et proposé qu’ils m’expliquent devant un verre. Jackpot ! J’ai alors rencontré Mahdi Ben Jelloul de l’IPP (Institut des Politiques Publiques) et Emmanuel Raviart (EtaLab) et j’ai finalement trouvé le sujet très intéressant ; ils ont su me convaincre !

Openfisca c’est un logiciel open-source de micro-simulation du système socio-fiscal. Une fois que l’on a dit ça, on s’est fait plaisir mais ça manque un peu de clarté. Alors décortiquons et demandons-nous au préalable à quoi cela peut servir ?

Le but de cette collaboration entre l’IPP, Etalab et France Stratégie est d’abord de rendre compréhensibles à tous les citoyens les impôts et les prestations sociales. Une première version du logiciel OpenFisca est déployé sur le site « mes-aides.gouv.fr », qui devrait être lancé officiellement courant mars. L’accroche est alléchante :

Service expérimental : Ici l’État innove avec
la société civile pour offrir aux usagers
le service public de demain.

Sans titre-1

Le constat de départ est très simple : des prestations sociales ne sont pas demandées par un nombre incroyable de personnes qui y auraient droit. Ils ne le savent pas ; ils ne veulent pas se lancer dans un dossier compliqué sans savoir si ça va marcher. Le site demande des informations simples au prestataire éventuel (cela peut-être saisi via un médiateur numérique, un ami, un bénévole d’une association) et propose de calculer si la personne en question a droit à telle ou telle prestation. Le problème est simple, la solution est claire.

En cliquant sur cette image, on découvre un aperçu de l’interface

L’outil est neutre. Il permet de savoir si vous pouvez bénéficier d’une prestation sociale, de comprendre ce que vous allez gagner ou perdre avec une nouvelle loi ou pourquoi pas, comment faire de l’optimisation fiscale. Dans des cas de divorce, le juge pourrait utiliser un tel outil plutôt que de fixer, par exemple, des pensions alimentaires à l’aide de grilles désuètes. On imagine aussi l’utilisation pour faire du « fact checking » (vérification des faits). Par exemple, nous avons assisté début 2014 à une polémique sur le fait que beaucoup de personnes qui ont droit au RSA, ne le demandaient pas. (Voir l’article des Décodeurs) Les outils de Openfisca peuvent être utilisés par les journalistes pour vérifier les chiffres que les politiques ou les administrations avancent. Nous sommes tous unanimes sur le fait que les débats se basent sur des chiffres corrects !

impotsDe la complexité du problème : Les contraintes entre les variables, © Openfisca (cliquer sur le graphe)

Pour arriver à cela, les quelques personnes d’Openfisca ont dû coder toute la législation des impôts, toutes les règles des prestations sociales. On imagine aisément la complexité d’une telle démarche. Maîtriser les règlements, interpréter le plus fidèlement les textes, clarifier les éléments de langage. Au-delà de la loi, il fallait comprendre les usages. À l’arrivée, il s’agit de centaines de variables et de fonctions qu’il faut exécuter en tenant compte des dépendances entre elles. Donc, au final des centaines de formules et des milliers de tests codés en « Python » (le langage de programmation utilisé). Pour un informaticien, c’est un problème super intéressant à programmer.

On ne peut s’empêcher de se poser la question de la fiabilité d’un tel logiciel et des tests effectués avant de le déployer. Openfisca nous explique qu’une armada de tests ont ainsi été proposé par des experts et qu’actuellement on vérifie que le programme fait ce que les experts en attendent. Le verdict positif nous permettra de juger de la qualité et fiabilité du programme.

Mais revenons à notre point de départ, « la micro-simulation du système socio-fiscal ». Que veut-on simuler ? Prenons un impôt particulier. Que se passerait-il si on changeait tel seuil, tel taux d’imposition ? Quel serait l’impact pour un ménage avec deux enfants en fonction du revenu imposable ? Mieux. En supposant que je désire développer telle prestation sociale pour arriver à offrir en moyenne une somme particulière à une catégorie particulière de la population. Comment pourrais-je y arriver ? Bien sûr, les administrations disposent déjà de tels logiciels, les impôts, la CAF, l’INSEE, d’autres. Mais avec Openfisca, le logiciel est libre. Tout le monde peut l’utiliser. Chacun peut l’améliorer, l’enrichir. C’est le principe du libre.

Les impôts pour tou-te-s ©vidberg

Au cœur de tout cela, il s’agit ni plus ni moins de définir un modèle de la fiscalité et des prestations sociales, un modèle « ouvert », partagé par tous et développé collectivement. Nous sommes au cœur de l’open-gouv, le Gouvernement ouvert. Mahdi, Emmanuel et d’autres (notamment Clément Schaff) ont développé de la belle technologie informatique et leur travail nous ramène au célèbre « Code is Law » de Lawrence Lessig. Avec Openfisca, les impôts et les prestations sociales sont devenues des lignes de Python, du code pour le bien de tous.

Serge Abiteboul

 

def function(self, simulation, period):
period = period.start.offset(‘first-of’, ‘month’).period(‘month’)
rsa_socle = simulation.calculate(‘rsa_socle’, period)
rsa_socle_majore = simulation.calculate(‘rsa_socle_majore’, period)
ra_rsa = simulation.calculate(‘ra_rsa’, period)
rsa_forfait_logement = simulation.calculate(‘rsa_forfait_logement’, period)
rsa_forfait_asf = simulation.calculate(‘rsa_forfait_asf’, period) # TODO: not used ?
br_rmi = simulation.calculate(‘br_rmi’, period)
P = simulation.legislation_at(period.start).minim.rmi

socle = max_(rsa_socle, rsa_socle_majore)
base_normalise = max_(socle – rsa_forfait_logement – br_rmi + P.pente * ra_rsa, 0)

return period, base_normalise * (base_normalise >= P.rsa_nv)

Le Revenu de solidarité active, https://github.com/openfisca

Les bonnes propriétés d’un système de vote électronique

Pour poursuivre la série d’article sur le sujet du vote électronique (Qu’est-ce qu’un bon système de vote ? et la sureté des systèmes) par Véronique Cortier, Directrice de recherche au CNRS à Nancy, nous avons choisi de vous parler du système Helios pour mettre en lumière les bonnes propriétés d’un système de vote électronique et les possibilités offertes par certains algorithmes. Pierre Paradinas

urne_vérouillée_votant_aussiMettre au point un système de vote électronique sûr est un exercice délicat. En particulier, la vérifiabilité et la résistance à la coercition sont des propriétés antagonistes : il faut à la fois démontrer qu’un certain vote a été inclus dans le résultat et ne pas pouvoir montrer à un tiers comment on a voté.

Le système Civitas implémente un protocole qui vise à la fois la vérifiabilité et la résistance à la coercition. Les systèmes Helios et « Pretty Good Democracy » assurent la vérifiabilité et l’anonymat. Contrairement à Civitas, ils ne garantissent pas la résistance à la coercition, mais ils sont plus faciles à mettre en œuvre. Le fonctionnement d’Helios est aussi plus simple à exposer.  Pour approfondir le sujet, nous vous conseillons d’aller découvrir sur Interstices deux articles qui explorent plus en détail la partie cryptographie et le système Helios.

L’exemple d’Helios

Helios est un protocole développé sous licence libre par des chercheurs de l’Université d’Harvard et de l’Université catholique de Louvain (Ben Adida, Olivier de Marneffe et Olivier Pereira), basé sur une proposition originale de Josh Benaloh. Helios a été retenu pour élire le recteur — équivalent du président — de l’université catholique de Louvain et a également été utilisé à plusieurs reprises dans des élections étudiantes, par exemple à Princeton et Louvain. L’association internationale des chercheurs en cryptographie (IACR) l’a aussi choisi pour élire les membres de son bureau.

Il s’agit d’un protocole en deux phases, comme le système de vote papier classique : la phase de vote à proprement parler et la phase de dépouillement. Pour simplifier la présentation, le cas présenté est l’exemple d’un référendum où chaque électeur peut voter 0 (pour non) ou 1 (pour oui).

 

schema-helios2Helios : phase de vote. Illustration © skvoor – Fotolia.com.

Phase de vote

Le système Helios utilise un chiffrement à clef publique. C’est un système de chiffrement dit asymétrique : la clef de chiffrement est publique — tout le monde peut chiffrer — alors que la clef de déchiffrement est privée — seules les personnes ayant la clef de déchiffrement peuvent déchiffrer.

Pour voter, chaque électeur, au travers de son navigateur, chiffre son choix (0 ou 1) avec la clef publique de l’élection. Il fournit également la preuve qu’il a bien chiffré l’une des deux valeurs 0 ou 1 et non une autre valeur. Cela est possible grâce à une technique cryptographique particulière, appelée preuve à divulgation nulle de connaissance, qui permet de prouver que le contenu d’un chiffré vérifie une certaine propriété, sans fournir aucune autre indication sur le contenu du chiffré.

Le vote chiffré, accompagné de la preuve de validité, forme le bulletin qui est envoyé à une urne. Une des caractéristiques importantes d’Helios est que l’urne affiche sur une page web publique tous les bulletins reçus.

Ainsi, chaque électeur peut vérifier que son bulletin est présent dans l’urne.

Phase de dépouillement

La phase de dépouillement est plus complexe et les explications sont données sur l’article complet Helios sur le site d’Interstices. En résumé, les propriétés mathématiques des algorithmes mis en œuvre empêchent le votant malhonnête de chiffrer autre chose que 0 ou 1 et d’ajouter des bulletins dans l’urne. Elles permettent également à chacun de vérifier le résultat de l’élection, à nouveau à l’aide de preuves à divulgation nulle.

Les points forts d’Helios

Helios est un système de vote relativement simple comparativement aux autres systèmes existants. Il est facile à mettre en œuvre et il s’agit d’un logiciel libre, ce qui signifie que le code source est disponible. Helios assure bien sûr la confidentialité des votes mais son principal avantage est d’être entièrement vérifiable et par tous : tout électeur peut suivre son bulletin dans l’urne, calculer le résultat de l’élection sous une forme chiffrée et vérifier les calculs effectués par les autorités de déchiffrement. Il s’agit d’une différence fondamentale par rapport à la plupart des solutions commerciales actuellement déployées : même si les entreprises développant ces solutions font un effort pour que leurs systèmes soient audités par des experts habilités, elles ne permettent pas à tout un chacun de vérifier que le résultat proclamé est conforme.

20 ans après le vote est révélé !

Dans Helios, les votes sont affichés de manière chiffrée avec l’identité des électeurs ce qui comporte des risques pour l’anonymat. En effet, des systèmes de chiffrement qui sont sûrs aujourd’hui pourraient ne plus l’être dans 20 ou 30 ans. Les avancées scientifiques et technologiques permettront très probablement de casser ces chiffrés et de connaître ainsi comment chacun des électeurs a voté. D’autre part, en France, la liste d’émargement n’est pas publique en général. Ainsi, les recommandations de la CNIL en matière de vote électronique précisent que : « Les fichiers comportant les éléments d’authentification des électeurs, […] ne doivent pas être accessibles, de même que la liste d’émargement, sauf aux fins de contrôle de l’effectivité de l’émargement des électeurs. » Une solution très simple pour corriger Helios consiste à ne plus afficher l’identité des électeurs. Malheureusement, cela affaiblit également la sécurité du système : dans le cas où l’urne serait attaquée (par exemple si des hacker parviennent à contrôler le système informatique déployé pour l’élection), il serait alors facile d’ajouter quelques bulletins sans se faire remarquer. Le développement d’un système de vote sûr est un sujet de recherche très actif à l’heure actuelle. Ainsi, une évolution d’Helios, appelée Belenios, comporte une protection cryptographique contre le bourrage d’urne.

Quand (ne pas) choisir d’utiliser Helios ?

Des systèmes ouverts et vérifiables comme Helios représentent une avancée pour les élections qui ont lieu à distance. Cependant, il est important de souligner qu’Helios, comme tout système de vote en ligne, ne nous semble pas adapté à des élections à forts enjeux, comme des élections politiques (présidentielles, législatives…). En effet, un ordinateur compromis pourrait transmettre la valeur du vote d’un électeur à une tierce personne, et à l’insu de l’électeur. Il pourrait également voter pour une autre personne (même si Helios comporte quelques protections contre cela, non décrites ici). Ces faiblesses ne sont pas dues au système Helios, mais au fait qu’on ne peut tout simplement pas avoir une totale confiance dans la sécurité d’un ordinateur personnel.

De manière générale, certains problèmes de sécurité sont inhérents au vote par Internet. Ainsi, des logiciels malveillants comme des virus ou un enregistreur de frappe (keyloggers) peuvent enregistrer et divulguer les votes, brisant ainsi l’anonymat. D’autres logiciels peuvent non seulement divulguer les votes mais également changer leur valeur, sans être détectés. En 2012, lors des votes des Français de l’étranger aux élections législatives, Laurent Grégoire, ingénieur français travaillant aux Pays-Bas, en a fait la démonstration en mettant au point un logiciel capable de remplacer le choix de l’électeur pour un parti pirate, au moment où l’électeur votait. En 2007, en Estonie, un étudiant en informatique, Paavo Pihelgas, a également construit un logiciel pour produire des bulletins valides, pour le candidat de son choix. Dans les deux cas, il s’agissait de systèmes de vote dont le fonctionnement et le code source n’étaient pas connus. Ceci démontre que le secret du fonctionnement du système ne garantit pas la sécurité. Au contraire, il est souhaitable que la description du système et le code source soient ouverts pour permettre à un maximum de personnes de procéder à une analyse de sécurité.

Même pour les systèmes les plus sûrs et les plus vérifiables, les mécanismes de vérification font appel à des théories mathématiques complexes dont la compréhension détaillée est réservée à des experts. Les autres utilisateurs doivent faire confiance à ces experts, contrairement au vote papier où les procédures sont comprises par une vaste majorité des citoyens.

Election technology
© The Economist on October 27th 2012, un article qui explique comment le vote à domicile sur Internet pose des problèmes d’acceptabilité, mais change aussi létat d’esprit de l’électeur au moment du vote.

 

Vote à l’urne/Vote par correspondance/Vote par Internet ?

Pour toutes ces raisons, il semble prématuré d’utiliser le vote par Internet pour des élections à forts enjeux comme des élections politiques importantes. Par contre, il serait réducteur de penser que le vote par Internet est plus dangereux que les autres systèmes de vote en général. Ainsi, le vote par Internet est souvent utilisé pour remplacer le vote par correspondance, qui lui-même n’est pas un système totalement sûr comme nous en avons discuté dans un précédent billet.

En conclusion, le choix d’utiliser un système de vote électronique dépend très fortement du système déjà en place et du type d’élection.

Véronique Cortier, CNRS – Nancy, et Steve Kremer, INRIA Nancy Grand-Est, chercheurs au LORIA.

 

L’informatique sur Wikipédia

WikipédiaBinaire a pris l’initiative d’une série d’actions regroupées sous le nom de code « Cabale Informatique de France ». Il s’agit de contribuer aux pages de Wikipédia sur l’informatique, en français. Cela démarre le samedi 11 avril par un « pizza camp » co-organisé par la Société Informatique de France et Wikimédia France. Serge Abiteboul et Marie-Agnès Enard.

 

La Société Informatique de France et Wikimedia France s’associent pour enrichir les articles de Wikipedia dédiés à l’informatique, en français. A l’heure où l’école, le collège et le lycée ouvrent plus largement leurs portes à l’informatique, il nous a paru important de participer à l’enrichissement de la première encyclopédie en ligne au monde. Des formateurs seront aux côtés des participants pour les initier à la contribution sur Wikipedia. Cette journée est une occasion unique pour découvrir les rouages de Wikipédia.

@Maev59
@Maev59

Rendez-vous samedi 11 avril de 10h à 18h à l’UPMC, 4 place Jussieu, Paris 5e.
Salle 105 barre 26-25

10h-10h30 : Café d’accueil et introduction
10h30-13h : Session de contribution
13h-14h : Déjeuner sur place (à la charge des participants)
14h-17h30 : Session de contribution
17h30-18h : Conclusion

Merci d’apporter votre ordinateur portable
Demande d’inscription : http://tinyurl.com/oghbuaa
Inscription dans la mesure des places disponibles.

Une fois votre demande d’inscription acceptée, merci de confirmer votre présence avant le 30 mars par courriel à thierry.vieville@inria.fr. Seul le reçu de cette confirmation vous garantira une place.

En collaboration avec

L’ordinateur imite l’homme imitant la femme…

L’intelligence artificielle est un vrai sujet, mais c’est aussi une source de fantasmes dont la forme contemporaine est issue de textes d’Alan Turing. Isabelle Collet, Maître d’enseignement et de recherche à la Faculté des sciences de l’éducation de l’université de Genève, nous offre ici un éclairage inattendu et nous aide à dépasser les idées reçues. Elle attire notre attention sur le fait que c’est avant tout une histoire de « mecs ». À déguster donc… Thierry Viéville.

shapeimage_2Quand je faisais mes études d’informatique, j’avais entendu parler du « test de Turing ». Pour moi, il s’agissait simplement de faire passer un test à un ordinateur pour savoir s’il était intelligent (ou s’il était programmé d’une façon suffisamment maline pour donner cette impression).

 

Face à un ordinateur, l’humain est-il une femme ou un homme ?

En faisant des recherches dans le cadre de ma thèse, j’ai lu un peu plus sur le « test de Turing »… et j’ai découvert avec fascination que quand les informaticiens prétendaient le mettre en place, ils en oubliaient la moitié : le jeu ne se met pas en place avec un humain et un ordinateur, mais avec un homme et une femme. Un observateur devra déterminer lequel de ses interlocuteurs est un homme et lequel est une femme. Il devra les interroger sans avoir aucun autre indice que le contenu des réponses que l’homme et la femme formulent. Puis, au bout d’un « certain temps », on remplace l’homme par l’ordinateur. Si l’observateur pense qu’il joue encore à détecter la différence des sexes et ne remarque rien, c’est que l’ordinateur a l’air au moins aussi intelligent que l’homme. À l’époque, je ne voyais pas bien l’intérêt de ce passage par la différence des sexes… Jusqu’à ce que je lise un texte de Jean Lassègue, auteur d’un autre texte sur Turing sur ce blog, et que je l’associe aux recherches de l’anthropologue Françoise Héritier. Je vais parler ici de cette connexion, avec tous mes remerciements à Jean Lassègue pour son excellente analyse du jeu de l’imitation .

On pourrait considérer que la première partie du jeu (entre un homme et une femme) n’est qu’un prétexte pour permettre ensuite la substitution en aveugle avec l’ordinateur et que Turing aurait pu choisir un autre critère que la différence des sexes pour amorcer le jeu. Pour Jean Lassègue1, le critère de la différence des sexes est tout à fait capital : « il s’agit de passer d’un écart physique maximal entre êtres humains à un écart maximal entre espèces différentes (si on considère l’ordinateur comme une nouvelle espèce) ». Sur cette base, l’observateur est supposé en déduire que : « puisque la différence physique la plus profonde entre les êtres humains (être homme et être femme) n’est pas apparente dans le jeu n°1, la différence physique encore plus profonde entre les êtres humains d’une part et l’ordinateur d’autre part ne sera pas apparente dans le jeu n°2 non plus. ». Évidemment, si le jeu n°1 échoue, il n’est plus question de passer au jeu n°2 qui perd sa capacité démonstrative.

Lors de la première phase de l’expérience, Turing signale que : « La meilleure stratégie pour [la femme] est sans doute de donner des réponses vraies. Elle peut ajouter à ses réponses des choses comme : ‘‘C’est moi la femme, ne l’écoutez pas’’ mais cela ne mène à rien puisque l’homme peut faire des remarques semblables ».

Photo @Maev59
Photo @Maev59

Pourquoi Turing assigne-t-il ainsi les stratégies de jeu entre l’homme et la femme ? Toujours selon Lassègue, la stratégie de la femme est en fait une absence de stratégie. Dans le jeu de l’imitation, la femme est la seule qui s’imite elle-même, alors que l’homme imite la femme et que l’ordinateur imite l’homme imitant la femme.

Dans une interview, un de ses anciens collègues, Donald Michie, rapporte ces propos de Turing : « Le problème avec les femmes, c’est qu’il faut leur parler. Quand tu sors avec une fille, tu dois discuter avec elle et trop souvent, quand une femme parle, j’ai l’impression qu’une grenouille jaillit de sa bouche. »1

L’intelligence artificielle est-elle finalement « gendrée » ?

Revenons au jeu de l’imitation : les femmes, qui sont supposée être de manière générale à ce point dépourvues d’à-propos dans une conversation, doivent se contenter d’être elles-mêmes dans ce jeu, c’est-à-dire, indiscutablement une femme, un être incapable de faire abstraction de son sexe. L’homme, par contre, va tenter de tromper l’interrogateur, et pour cela, il devrait être capable de se détacher de son sexe, c’est à dire de son corps sexué, pour réussir à imiter la femme. Et en fin de compte, ce que l’ordinateur va devoir réussir, c’est d’imiter l’homme qui imite la femme, ou, plus simplement, d’imiter la femme.

Finalement, l’homme et l’ordinateur ont des stratégies tout à fait similaires. L’intelligence ainsi imitée par la machine est celle de l’homme et le jeu de l’imitation a pour conséquences, d’une part, d’écarter les femmes dès qu’on parle d’intelligence, et, d’autre part, de placer l’intelligence de l’homme (et non pas de l’humain) à un niveau universel.

Il est en effet remarquable au début du jeu n°1 que Turing semble signifier que la différence des sexes se traduit clairement par les attributs physiques. Plus particulièrement, il pense qu’il y a une essence féminine (différente de l’essence masculine) et qu’une de ses manifestations fiables est l’apparence de la femme. Dans le premier et seul exemple de l’article proposé pour le jeu n°1, l’observateur pose une question relative à la longueur des cheveux de son interlocuteur-trice. Turing reprend ici, volontairement ou non, le présupposé sexiste largement répandu qui prétend, d’une part, que les femmes sont davantage asservies à leur corps que les hommes et, d’autre part, que leur apparence se superpose à leur personnalité. Rousseau disait déjà que la femme est femme à chaque instant, alors que l’homme n’est homme (c’est-à-dire un être mâle) qu’à des instants précis… le reste du temps, il est universel (c’est à dire un universel masculin, puisque de toute manière, la femme n’y est pas conviée).

Notons que pour que le jeu puisse fonctionner, il faut bien que la femme soit elle-même, et ne puisse être qu’elle-même. La différence est alors produite par la capacité de l’homme à se détacher de son corps, car son esprit lui permet d’imiter un être pris dans un autre corps, et ainsi de jouer, sur ce plan, jeu égal avec la machine. On en vient à penser que l’intelligence universelle est plutôt du côté de la machine.

Dans son jeu, Turing se débarrasse de la différence des sexes simplement en se débarrassant des femmes. Si l’intelligence que recherche Turing est universelle, ce n’est pas parce qu’elle a fusionné les sexes, mais parce qu’il n’en reste plus qu’un, auquel peut se comparer l’intelligence artificielle.

On retrouve ce même fantasme quand il décrit les machines autorisées à participer au jeu : « Nous souhaitons enfin exclure de la catégorie des machines les hommes nés de la manière habituelle. […] On pourrait par exemple requérir que les ingénieurs soient tous du même sexe, mais cela ne serait pas vraiment satisfaisant »2. Cette phrase, qui peut être considérée comme un trait d’humour, possède en fait deux éléments essentiels pour comprendre la vision que Turing a de la machine. Tout d’abord, la machine est considérée comme étant littéralement l’enfant des ingénieurs, puisque s’il était produit par une équipe d’hommes et de femmes ingénieurs, cela jetterait le doute sur un possible engendrement biologique. D’autre part, pour que la machine puisse être éligible au jeu de l’imitation, une condition nécessaire est qu’elle ne soit pas issue de la différence des sexes.
De plus, l’équipe d’ingénieurs de même sexe qui engendrerait une machine, serait selon toutes probabilités dans l’esprit de Turing, une équipe d’hommes. Sa vision de la création d’une machine de type ordinateur est non seulement un auto-engendrement, mais surtout un auto-engendrement masculin se débarrassant des femmes au moment de la conception sous prétexte, en quelque sorte, de ne pas tricher.

Un paradis sans altérité !

Photo @Maev59
Photo @Maev59

La cybernétique nous explique que, puisque le niveau supérieur de compréhension de l’univers implique l’étude des relations entre ses objets et non la connaissance de la structure des objets, les matières et les corps ne sont pas vraiment ce qui importe. Piégées dans leur corps, les femmes n’ont pas accès à ce niveau supérieur de compréhension de l’univers que propose le paradigme informationnel. Elles en seront même éventuellement écartées pour permettre à l’intelligence d’atteindre un idéal androgyne débarrassé du féminin. A cet instant, la perspective d’un monde idéal dans lequel l’homme pourrait se reproduire à l’identique devient possible.

Les fantasmes d’auto-engendrement apportent une solution à ce que Françoise Héritier3 appelle le privilège exorbitant des femmes à pouvoir se reproduire à l’identique mais aussi au différent. Les femmes sont les seules capables de mettre au monde non seulement leurs filles mais aussi les fils des hommes. Selon Françoise Héritier, on retrouve dans de nombreux mythes des groupes non mixtes vivant séparément et pacifiquement, chacun étant capable de se reproduire à l’identique. L’harmonie primitive résidait dans l’absence d’altérité, jusqu’à ce qu’elle soit gâchée par un événement violent (en général : une copulation que (les) dieu(x) ne désirai(en)t pas).

Philippe Breton estimait dans son livre de 1990 « La tribu informatique » que : « La reproduction au sein de la tribu se fait fantasmatiquement grâce […] à l’union de l’homme et de la machine ». Sur ce point, je ne suis pas d’accord. À mon sens, il n’y a pas d’union avec la machine, mais un auto-engendrement dont la machine est soit le produit (du temps où on fantasmait sur les robots) soit le support (depuis qu’on imagine des IA uniquement logicielle). Or, un auto-engendrement et une reproduction via une « matrice biologique » sont des procédés qui se présentent comme mutuellement exclusifs. C’est pourquoi je suis d’accord quand il ajoute : « Dans ce sens, l’existence même de la tribu informatique est en partie conditionnée par l’exclusion des femmes qui constituent une concurrence non désirée.»

Le monde scientifique des années 1950 peut être un exemple du paradis sans altérité de Françoise Héritier. Le monde de l’informatique d’aujourd’hui n’en est pas très loin. L’auto-engendrement cybernétique au cours duquel l’homme seul duplique son intelligence dans une machine permettrait de faire fonctionner pleinement ce « paradis », il possède le double avantage de supprimer la différence des sexes en écartant les femmes du processus de reproduction et de permettre aux êtres mâles de se reproduire à l’identique.

Isabelle Collet.

1Lee, J. A. N. and Holtzman, G. « 50 Years After Breaking the Codes: Interviews with Two of the Bletchley Park Scientists. » The Annals of the History of Computing vol. 17 n°1 (1995) p. 32-43

2Alan Turing, Jean-Yves Girard, La machine de Turing, 1995

3Françoise Héritier, Masculin / Féminin, Dissoudre la hiérarchie. (2002).

1Jean Lassègue, Turing. 1998.

Où sont les femmes ?

C’est une question historique. Binaire l’a posée à une amie historienne, Valérie Schafer de l’Institut des sciences de la communication. Valérie reprend ici un sujet qu’elle a développé au congrès annuel de la Société Informatique de France qui s’est tenu récemment à Orléans. Regard sur l’histoire des femmes et de l’informatique. Serge Abiteboul.

valerie
Valérie Schafer

La célébration cette année des deux cents ans de la naissance d’Ada Lovelace, la sortie de The imitation Game dans lequel Keira Knightley incarne la mathématicienne-informaticienne Joan Clarke ou encore la diffusion en France de la série britannique Enquêtes codées, qui permet de découvrir l’univers féminin de Bletchley Park, témoignent de ce que la relation des femmes à l’informatique est ancienne. Le temps serait-il à l’œuvre pour reconnaitre la place qu’elles ont pu occuper aux débuts de l’informatique? Le livre de l’historienne Janet Abbate, Recoding Gender, Women’s changing participation in Computing, s’ouvre ainsi sur un souvenir d’Elsie Shutt, fondatrice en 1958 d’une entreprise informatique qui employait à ses débuts uniquement des programmeuses en freelance travaillant à domicile : elle avoue sa surprise quand elle a rencontré des programmeurs, métier qu’elle considérait comme féminin. Et la journaliste Lois Mandel ne soulignait-elle pas en 1967 dans Cosmopolitan que l’informatique offrait des opportunités absolument remarquables aux femmes, avant de reprendre les propos de la pionnière de l’informatique Grace Hooper, qui comparait la programmation à l’organisation d’un dîner, concluant que les femmes sont naturellement enclines à cette activité ! Si cette idée peut aujourd’hui faire sourire, du moins témoigne-t-elle de ce que les représentations de l’informatique ont profondément évolué.

cosmo-girlsLes pages d’ouvertures d’un article de  Cosmopolitan Magazine en 1967.
Indiana University’s School of Informatics and Computing.

L’historien Nathan Ensmenger [1] a souligné que si l’essentiel des recherches s’est intéressé à « l’histoire cachée » des femmes dans l’informatique, celle-ci ne nous apprend pas seulement sur les femmes, mais aussi sur l’informatique elle-même. On peut notamment retenir :

  • La présence nombreuse des femmes aux débuts de l’informatique, à Bletchley Park ou à la Moore School autour de l’Eniac, mais aussi dans le secteur civil que ce soit dans le domaine des cartes perforées, dans les départements scientifiques pour le traitement de données, ou dans la programmation.
  • La construction progressive d’une image masculine de l’informatique notamment de la part d’associations professionnelles, comme la Data Processing Management Association dont l’historien Tom Haigh montrait qu’elle avait œuvrée dès les années 1960 à dissocier son image de celle d’un monde professionnel féminin pour mieux valoriser et faire reconnaître son activité. Nathan Ensmenger souligne également le rôle des tests d’aptitude et de personnalités à la fin des années 1950 et dans les années 1960 pour recruter les programmeurs.
  • Un autre élément qu’éclaire cette histoire est celui du statut de l’informatique, et en particulier celui de la programmation, à la fois largement féminisée et souffrant à ses débuts d’une moindre reconnaissance que le domaine du matériel. Si la faible féminisation actuelle de l’informatique fait oublier que jusque dans les années 1980 la situation était toute différente, cet oubli tient aussi à ce que certains des emplois confiés aux femmes dans l’informatique étaient alors considérés comme de statut inférieur.
usarmyPhoto of the U.S. Army.  Left: Patsy Simmers, holding ENIAC board Next: Mrs. Gail Taylor, holding EDVAC board
Next: Mrs. Milly Beck, holding ORDVAC board Right: Mrs. Norma Stec, holding BRLESC-I board

Non seulement l’analyse de la place des femmes dans l’informatique ne relève pas d’une histoire compensatoire, qui viserait à chercher quelques rares traces de leur présence, elle est une réalité historique, mais encore son étude et celle des rapports de genre éclairent l’histoire de l’informatique elle-même, son passé et son présent, donnant tout son intérêt à une thématique qui était au cœur du congrès annuel de la SIF qui s’est tenu à Orléans du 3 au 5 février 2015. Au-delà c’est aussi ses futurs que peut accompagner ce regard historique, à l’heure où le milieu informatique s’inquiète de la baisse inédite de la proportion de femmes dans ses rangs depuis vingt ans. L’histoire, en éclairant comment la discipline et les professions informatiques se sont construites [2], permet aussi de ne pas considérer comme acquise ou figée la situation actuelle.

Valérie Schafer, Institut des sciences de la communication –  CNRS, Paris Sorbonne, UPMC

coderecoding
Pour aller plus loin

  1. Dans le livre collectif, Gender Codes: Why Women Are Leaving Computing?
  2. Colloque Femmes, genre et TIC du LabEx EHNE

Et un, et deux, et trois femmes Prix Turing !

Après Ada Lovelace et Grace Hopper, et à l’occasion de la Journée internationale de la femme, Anne-Marie Kermarrec nous parle de plusieurs grandes informaticiennes et scientifiques, toutes Prix Turing. Elle achève ainsi sa démonstration – s’il était possible de douter – l’informatique est aussi pour les filles !  Serge Abiteboul.

En 1966, l’ACM crée le prix Turing, l’équivalent du Nobel pour l’informatique, qui récompense les plus grands scientifiques du domaine. Il faudra attendre quarante ans pour voir entrer une femme au palmarès. Depuis, deux autres femmes ont été récompensées par le prestigieux trophée. Ce n’est pas si mal, quand la médaille Fields a récompensé une femme pour la première fois en 2014 !!

Frances Allen,  source Wikipedia
Frances Allen Source Wikipedia

2006 : Frances Allen, née en 1932, après voir été la première femme à recevoir le titre d’IBM fellow,  est la première à se voir récompenser par le prix Turing pour ses  contributions pionnières tant pratiques que théoriques dans l’optimisation des compilateurs. Lors de ses études de mathématiques à l’Université du Michigan, Ann Arbor, elle y prend aussi des cours d’informatique, parmi les premiers dispensés. Elle est engagée par IBM avec l’envie de revenir à ses premières amours et de revenir enseigner les mathématiques quand son prêt étudiant serait soldé. Elle restera 45 ans chez IBM. Sa passion pour la compilation lui vient de la lecture attentive du compilateur Fortran en 1957 quand d’autres lisent des romans ! En bref,  un compilateur traduit un langage de programmation de haut niveau, comme le langage Cobol dont Grace Hopper est à l’origine rappelez-vous, un langage adapté à des humains, en instructions qu’un ordinateur peut exécuter. Un compilateur est donc par définition dépendant d’un langage de programmation et d’une architecture machine. Avec son équipe, elle conçoit le premier environnement de compilation multi-langages (Fortran, Autocoder qui est un langage proche de Cobol de Grace Hopper et Alpha). Les trois langages partageaient en particulier un socle d’optimisation qui permettait de produire du code pour les deux architectures du supercalculateur Stretch et de son co-processeur Harvest. Elle travailla ensuite à la conception du premier ordinateur superscalaire (ACS) capable d’exécuter plusieurs instructions simultanément, y compris dans le « désordre ». Il va de soi qu’écrire des compilateurs associés à ce nouveau type d’architecture représentait un incroyable défi, qu’elle a su relever en représentant le code source comme un graphe plutôt que comme une séquence d’instructions. Cette représentation a permis en particulier de pouvoir détecter des relations entre différentes parties du code difficiles à détecter autrement. Son dernier projet a consisté à compiler des programmes séquentiels pour des architectures parallèles.

L’une des grandes vertus scientifiques de Frances Allen, a été à l’instar de Grace Hopper, non pas de réinventer des nouveaux paradigmes en langage de programmation mais de concevoir des mécanismes nouveaux d’analyse et d’optimisation permettant de traiter les langages tels qu’ils étaient utilisés en pratique.

 
Barbara Liskov Source Wikipedia
Barbara Liskov
Source Wikipedia

2008 : Barbara Liskov reçoit le prix Turing pour ses travaux dans le domaine des langages de programmation et de la méthodologie polymorphe. Barbara Liskov, née en 1939, fait ses études à Berkeley, passe un doctorat à Stanford avant de rejoindre Mitre Corp où elle crée le système d’exploitation pour l’ordinateur Venus, un système d’exploitation qui permettait d’isoler, en utilisant la notion de machine virtuelle (ça vous rappelle quelque chose ?) pour isoler les actions, et donc potentiellement les erreurs, d’un utilisateur sur une machine partagée entre plusieurs utilisateurs : les débuts du temps partagé. Elle devient professeur au prestigieux MIT en 1971. Elle y conçoit un langage de programmation, appelé CLU, qui introduit les notions de modularité, d’abstractions de données et de polymorphisme (ce qui permet d’utiliser le même code pour des types d’objets différents), notions fondatrice des langages orienté-objet dont le plus connu est le plébiscité Java. Le langage Argus, sur lequel elle travaille plus tard, étend ces concepts  pour faciliter la programmation au dessus d’un réseau. C’est d’ailleurs dans le domaine des systèmes distribués, quand plusieurs machines connectées par un réseau exécutent ensemble une application, qu’elle continuera son illustre carrière. Elle est encore extrêmement active aujourd’hui et les travaux actuels du domaine reposent sur bien des concepts qu’elle a introduit en terme de réplication, tolérance aux défaillances, etc. Elles s’est en particulier attaquée à l’algorithmique Byzantine, qui consiste à tolérer la présence d’entités malicieuses (attaques ou fautes matérielles ou logicielles aléatoires) dans un système.

L’avantage de mettre autant de temps à récompenser les femmes dans cette discipline jeune est qu’elles sont toujours actives !  J’ai eu la chance de rencontrer Barbara Liskov, une grande dame de ma discipline, que nous admirons tous beaucoup et qui est en particulier une fervente défenseure de la cause féminine. Elle a beaucoup contribué à renforcer la présence des femmes professeurs au MIT, et met beaucoup d’énergie pour animer la communauté des femmes en système en particulier.

Shafi Goldwasser Source Wikipedia
Shafi Goldwasser
Source Wikipedia

2012 : Shafi Goldwasser  reçoit, avec Silvio Micali, le prix Turing pour ses travaux  dans le domaine de la cryptographie et de la preuve informatique. C’est un peu comme si Babbage avait partagé son prix de la Royal Academy of Astronomy avec Ada… Shafi Goldwasser est née seulement en 1958 et son nom est déjà célèbre dans le domaine de la cryptographie. Cette volontaire et énergique Professeure au MIT est connue en particulier pour ses contributions pionnières dans le domaine de la cryptographie et des « preuves interactives connaissance-zéro ».

Durant ses études à Carnegie Mellon University, Shafi effectue un stage à RAND Corporation qui lui fait découvrir la Californie et surtout Berkeley où elle commence un doctorat sous l’égide du très connu Dave Patterson. Elle rencontre son brillant collaborateur Silvio Micali et commence à s’intéresser à la cryptographie. La cryptographie est un cauchemar à expliquer. Pour simplifier disons que l’une des contributions majeures de Shafi a été cette « preuve interactive connaissance-zéro », qui désigne une méthode dans laquelle une entité prouve à une autre entité qu’une proposition est vraie mais ne donne aucun autre élément que la véracité de la proposition. La dernière fois que l’on m’a expliqué ce concept, c’était justement Shafi Goldwasser, qui nous avait fait le plaisir d’honorer de sa présence un évènement scientifique que nous organisons pour les étudiants. Une célébrité très accessible.

zeroPreuve interactive connaissance-zéro, Wikipedia

Le principe de la « preuve interactive connaissance-zéro » est souvent expliquée de la manière suivante (source wikipedia). Imaginons Peggy (en rose sur l’image, une fois n’est pas coutume) et Victor (en vert), Victor souhaite savoir si Peggy connaît le code d’un passage secret entre une allée A et une allée B d’une cave. L’objectif de Peggy est de lui montrer qu’elle connaît le code sans le divulguer. Peggy entre dans la cave sans que Victor ne sache par quelle allée elle est entrée. Victor lui demande de sortir par l’une des allées, A ou B.  Si Peggy connaît le code et que Victor lui demande de sortir par l’allée A, peu importe l’allée par laquelle elle est entrée, elle sortira par A (en ouvrant le passage secret si elle est entrée par B). Sinon elle a seulement une chance sur deux de sortir par l’allée demandée. En répétant cette opération (interactive) plusieurs fois, la probabilité que Peggy sorte par l’allée demandée devient très petite si elle ne connaît pas le code. Ainsi ceci fournit un moyen de  vérifier que Peggy connaît le code (preuve) sans que Peggy ait à divulguer d’information (connaissance-zéro). Expliquer cet exemple est déjà un défi, quand à le prouver, cela vaut bien un Turing Award  !

À quand la super production Hollywoodienne qui nous portera tout ça à l’écran ?

Anne-Marie Kermarrec, Inria Bretagne

 

La pétulante Grace Hopper

Après Ada Lovelace hier et à l’occasion de la Journée internationale de la femme, Anne-Marie Kermarrec nous parle d’une autre grande pionnière de l’informatique, Grace Hopper. Inventeure d’un des langages de programmation qui a été le plus utilisé, Cobol, Grace Hopper est une grande dame dans un style très différent d’Ada Lovelace. Serge Abiteboul.

graceGrace Hopper, Wikipedia

Grace Hopper (1906-1992) est américaine, elle obtient un doctorat en mathématiques à Yale et commence à enseigner la discipline à Vassar College en 1931.  En 1943, elle s’engage dans l’armée américaine comme beaucoup d’autres femmes, dans l’unité exclusivement féminine WAVES. Ces femmes étaient appelés les « ordinateurs humains » et étaient en charge, pendant que les hommes étaient au front, d’étudier en particulier des trajectoires balistiques. Grace Hopper est affectée à Harvard comme lieutenant pour y programmer l’ordinateur Mark 1. Son supérieur H. Aiken, un peu réticent à l’idée d’avoir comme second une femme, accuse cependant très vite réception des qualités de Grace Hopper pour la discipline.  Le Mark 1 est un calculateur générique, programmable par cartes perforées.  Grace Hopper s’attèle à la programmation de cette machine dont les résultats seront très importants dans ce contexte de guerre. Grace Hopper décide alors de nommer le processus d’écrire des instructions, le codage (coding). Il est amusant de noter que ce terme, remplacé par celui de programmation, vient d’être récemment remis au goût du jour. À l’issue de la guerre, Grace Hopper ne peut réintégrer la Navy en raison de son âge trop avancé, et  doit quitter Harvard qui n’attribue pas de postes de professeurs aux femmes.

Elle rejoint alors  Eckert-Machly Computer Corporation, une « startup » qui souhaite commercialiser l’ordinateur, et l’équipe qui développe l’Univac.  Grace Hopper est parmi les premières à défendre l’idée d’un langage de programmation qui serait  d’une part indépendant des machines (de multiples ordinateurs  fleurissent à l’époque) et d’autre part possible d’être exprimé non pas avec des symboles mais à l’aide d’un langage proche de l’anglais, permettant ainsi à des gens qui n’auraient pas de doctorat en mathématiques ou informatique de pouvoir programmer des ordinateurs. Elle introduit alors avec cinquante ans d’avance le concept de réutilisation. Les langages de programmation de haut niveau étaient nés. Elle écrit en 1952 le premier compilateur.  Elle introduit en particulier la notion  de subroutines, réalise qu’elles peuvent être stockées et assemblées par l’ordinateur lui-même. Elle écrit alors un morceau de code, un compilateur, pour effectuer ces tâches automatiquement. C’est en 1959, qu’avec une poignée d’autres scientifiques, elle pose les bases du langage Cobol, très largement inspiré du FLOW-MATIC qu’elle avait inventé quelques années auparavant. Cobol sera une vraie révolution industrielle.

Enfin, Grace Hopper est connue pour avoir rendu populaire la notion de « bug », même si le terme était déjà utilisé pour désigner des phénomènes inexplicables. Le terme de « bug » est associé à la découverte d’un insecte, en l’occurrence une mite, qui avait provoqué un faux contact et une  erreur dans l’exécution  d’un programme.

Une féministe à sa manière, Grace Hopper croyait fermement que les femmes disposaient des mêmes capacités (ça c’est faire preuve de féminisme) et des mêmes opportunités (ça moins, un manque de discernement étonnant pour une femme de ce calibre) que les hommes. Ceux qui connaissent Grace Hopper ont en tête l’image de la vieille dame, amiral  de l’armée américaine, austère,  en uniforme. Grace Hopper s’est pourtant imposée dans ce monde informatique en construction,  largement dominé par les hommes, à renforts de sarcasmes, d’humour mais aussi de charme, selon ses propres mots [1].  En revanche, elle n’a jamais admis que les droits des  femmes avaient besoin d’être défendus d’une quelconque manière. Trop optimiste sur la condition humaine il semblerait. Qu’importe, son nom aujourd’hui est clairement associée à une réussite féminine en informatique. Toute féministe qu’elle était, il est amusant de noter que le nom Hopper est en fait celui de l’homme avec qui elle s’est mariée en 1930 et dont elle a divorcé en 1945.

Contrairement à Ada Lovelace, Grace Hopper a été très primée tout au long de sa vie. Elle reçoit en particulier en 1969, le prix de l’homme de l’année en informatique (Computer Sciences Man of the Year award).  En 1973, elle devient la première personne américaine et la première femme, toutes nationalités confondues, à recevoir la distinction  « Distinguished Fellow of the British Computer Society ». En 1971, l’ACM crée le prix Grace Murray Hopper, qui récompense le(la) jeune informaticien(e) de l’année.

À suivre…

Anne-Marie Kermarrec, Inria Bretagne

Pour aller plus loin

  1. The queen of Code, directed by Gillian Jacobs.  http://fivethirtyeight.com/features/the-queen-of-code/
  2. Grace au Letterman Show  (en anglais)
  3. The Queen of Code
Commodore_Grace_M._Hopper,_USN_(covered)Rear Admiral Grace M. Hopper, USN, Ph.D. Wikipedia

La visionnaire Ada Lovelace

Voilà quarante ans que nous célébrons les femmes le 8 mars, depuis 1975, année internationale de la femme, pour accuser réception de la lutte historique concernant l’amélioration des conditions de vie des femmes. Vaste programme, comme dirait l’autre. Toujours cet arrière goût d’inachevé…  Pour l’occasion, Anne-Marie Kermarrec nous parle de grandes pionnières de l’informatique, aujourd’hui Ada Lovelace. Le premier programmeur de l’histoire était une programmeure ! Serge Abiteboul.

©Inria/Lebedinsky
Anne-Marie Kermarrec ©Inria/Lebedinsky

1967 : autant de bachelières que de bacheliers, pour la première fois.  2015 : à peine 10% de femmes dans les cursus d’ingénieurs. L’informatique continue de se sinistrer doucement mais surement. Au cours du congrès annuel de la SIF (Société informatique de France), consacré cette année à « Femmes et Informatique », nous n’avons pu que constater les statistiques en berne, qu’il s’agisse d’étudiantes, de chercheuses et enseignantes-chercheuses. Plus encore, à mesure que les grades augmentent, les femmes se raréfient. Same old story. D’aucun pourrait se réjouir du reste et conclure que l’informatique prend du galon, arguant du fait qu’une discipline qui se féminise est clairement en perte de prestige et de vitesse… Nous avons débattu deux jours sur les raisons de cet état de fait. Qui de l’image, des clichés, etc. …. et cette impuissance, prégnante, à inverser la tendance.  Oui quelques idées flottent bien, comme de convaincre les filles qu’elles aiment aussi la technique, de revamper les cours d’informatique ou encore d’enseigner l’informatique dès le primaire. On attend toujours le déclic sociétal…

2014, si elle était le quarantième anniversaire de la légalisation de l’IVG,  était aussi celle du centenaire d’Alan Turing, le père de l’informatique. Turing, malheureusement encore trop peu connu du grand public quand il devrait mériter au moins autant d’égards qu’Einstein. Tout le monde connaît l’espiègle moustachu qui tire la langue, quand bien même la théorie de la relativité échappe à la majorité des gens, ou encore Freud, dont on sait qu’il interprète les  rêves. Turing, lui les aura réalisés. Pourtant, personne ne le connaît, quand la moitié de la planète tweete à longueur de journée, sur ses traces…

2015 commence bien. Hollywood s’en mêle. Deux films consacrés à des scientifiques de renom : Alan Turing (Imitation game) justement et Stephen Hawkings (The theory of everything).  Imitation Game retrace les activités de Turing pendant la seconde guerre mondiale pour craquer Enigma, au creux de Bletchey Park, où mille délicates oreilles féminines interceptent les messages pendant que quelques cerveaux masculins s’évertuent à les décoder.  Pourtant, déchainement de critiques : impossible de comprendre précisément comment Enigma a été craquée, le concept de la machine de Turing est à peine évoqué, pas plus que le test éponyme permettant de différencier intelligence artificielle et intelligence humaine, qui pourtant donne son titre au film, Turing a l’air d’un autiste, l’homosexualité est trop timidement affichée, etc.   Soyons sérieux, quel scénariste, aussi talentueux soit-il, serait capable d’expliquer clairement la crypto au grand public dans un film hollywoodien ? Réjouissons nous plutôt que ce film ait du succès et permettent de mettre en lumière le père de l’informatique. Quand à The theory of everything, peut-être que le fait que Hawkings, lui même, ait rendu un verdict positif, suffira à faire taire les puristes des trous noirs.

Mais revenons à nos moutons,  en cette veille de journée de la femme 2015, c’est une pionnière de l’informatique, que j’aimerais mettre sous le feu des projecteurs.

adaAda Lovelace, Wikipedia

La visionnaire Ada Lovelace (1815-1852)

Ada Lovelace est le fruit des amours tumultueuses de Lord Byron, poète romantique dont le talent  n’a d’égal que le goût pour les frasques amoureuses, père qu’elle ne connaitra jamais d’ailleurs, et de Anabella Milanke, mathématicienne,  que Byron aimait à appeler sa « Princess of parallelograms »… De l’importance du niveau d’instruction des mères pour celle des jeunes filles.  Poussée par sa mère, elle étudie les mathématiques. Elle rencontre à 17 ans, Charles Babbage, mathématicien, professeur à l’Université de Cambridge. Fascinée par les machines qu’il conçoit, Ada y consacrera une grande partie de sa courte vie.

Babbage, dont les travaux couvrent un spectre aussi large qu’hétéroclite, du pare-buffle pour locomotive à l’analyse des troncs pour y déceler l’âge des arbres, de l’invention du timbre poste unique aux premiers ordinateurs, conçoit sa machine à différence, sur les traces de la Pascaline de Pascal,  initialement pour pallier les erreurs humaines et fournir ainsi des tables nautiques, astronomiques et mathématiques exactes, y incorporant des cartes perforées du métier Jacquard. Ce métier, inventé par Jacquard afin d’éviter aux enfants les travaux pénibles, permettait de reproduire un motif grâce à des cartes perforées qui n’actionnaient que les crochets nécessaires à effectuer le motif choisi sur un métier à tisser. La légende dit que Jacquard s’en est toujours voulu de l’invention de cette machine qui, outre d’être à l’origine de la révolte des canuts, a certes détourné les enfants des métiers à tisser, mais ne leur a pas épargné des travaux pénibles dans d’autres secteurs et parfois dans des conditions encore plus difficiles.

Le premier programmeur de l’histoire est une femme

Babbage se concentre bientôt sur la conception d’une machine plus puissante, la machine analytique dont le design a déjà tout d’un ordinateur moderne. Si Babbage avait en tête de pouvoir effectuer grâce à sa machine de nombreux calculs algébriques, celle qui l’a réellement programmée pour la première fois est Ada Lovelace.  En 1842, à la faveur d’un séminaire de Babbage à l’Université de Turin,  Louis Menebrea, publie en français un mémoire décrivant la machine analytique de Babbage. Babbage, impressionné par les qualités intellectuelles et mathématiques d’Ada, et dont la compréhension fine de sa machine ne lui aura pas échappé, décide de lui confier la traduction de cet article.  Elle s’attellera à cette tâche avec une grande application et à la faveur de cet exercice, augmentera l’article de nombreuses notes, qui triplent sa taille. Ces notes, dont la publication l’a rendue « célèbre », démontrent que si elle appréhende le fonctionnement de la machine aussi bien que Babbage, elle en voit beaucoup plus clairement l’énorme potentiel.
Ceci valut à Ada d’être considérée comme le premier programmeur de l’histoire. Elle a, la première, clairement identifié des notions essentielles en informatique que sont les entrées (les cartes perforées contenant données et instructions), les sorties (cartes perforées contenant les résultats), l’unité centrale (le moulin) et la mémoire (le magasin permettant de stocker les résultats intermédiaires). À la faveur de la conception de l’algorithme permettant le calcul des nombres de Bernoulli, elle a introduit la notion de  branchements, mais également expose comment une répétition d’instructions peut être utilisée pour un traitement, introduisant ainsi le concept de la boucle que l’on connaît bien en programmation.

Cent ans d’avance. Dans ses notes,  Ada décrit en particulier comment la machine peut être utilisée pour manipuler pas uniquement des nombres mais aussi des lettres et des symboles. Ada est une visionnaire, elle est celle qui, la première, entrevoit l’universalité potentielle d’une telle machine, bien au delà de ce que ses contemporains pouvaient appréhender. Ada avait eut cette vision du calculateur universel bien avant l’heure, vision qu’Alan Turing formalisera quelque cent ans plus tard. En particulier elle fut, tellement en avance,  en mesure d’imaginer la composition musicale effectuée par un ordinateur.  Dans sa fameuse note G, la note finale, elle décrit un programme, comme nous l’appellerions aujourd’hui, qui permettrait à la machine analytique de faire des calculs sans avoir les réponses que les humains auraient pu calculer d’abord.  Virage radical par rapport à ce que l’on attendait initialement de la machine analytique.
Ada Lovelace était une femme, non conventionnelle, athée quand sa mère et son mari étaient de fervents catholiques. Sur la fin de sa vie, Ada avait  pour seul  objectif de financer la machine de Babbage, elle croit avoir découvert une méthode mathématique lui permettant de gagner aux courses, qui la laissera dans une situation financière délicate. Elle meurt à 36 ans d’un cancer de l’utérus.

Une femme trop peu célébrée. Même si un langage de programmation porte son nom, Ada est restée assez discrète dans la discipline.  Étudiante en informatique, j’ai entendu parler de Turing, de von Neuman ou de Babbage. Jamais d’Ada Lovelace. C’est Babbage qui  fut récompensé par la médaille d’or de la Royal Astronomical Society en 1824. La vision d’Ada prendra son sens quelque cent ans plus tard dans les travaux de Turing. Alors même qu’il apparaît clairement que les notes  d’Ada jetaient les premières bases de la machine de Turing, aucune des nombreuses biographies consacrées à Turing ne la mentionne. Il semblerait pourtant qu’il ait lu la traduction de Lovelace et ses notes  quand il travaillait à Bletchey Park.  Pire encore, certains historiens lui en retirent même la maternité comme l’historien  Bruce Collier [1]. Si cette interprétation est largement contestée, cela en dit long sur la crédibilité qu’on accorde parfois aux esprits féminins.

À suivre…

Anne-Marie Kermarrec, Inria Bretagne

Et pour aller plus loin

  1. Bruce Collier. The Little Engine That Could’ve. 1990
  2. Suw Charman-Anderson. Ada Lovelace: Victorian computing visionary, chapitre de Women in STEM anthology, A passion for Science : Tales of Discovery and Invention.

Bonne fête des Meufes !

FullSizeRenderBinaire essaie de ne pas sombrer dans le monde très masculin des sciences en ouvrant ses articles à un grand nombre d’amies. Nous avons d’abord les « gentilles éditrices » du Blog : Marie-Agnès (Maé quoi!) et Sylvie. Et puis, certaines auteures sont devenues des habituées comme Françoise qui nous raconte l’enseignement de l’informatique dans le monde ou Véronique qui nous parle de sécurité informatique.

Donc pour nous la Journée de la Femme c’est toute l’année. Nous avons quand même voulu célébrer avec des amies cette journée, mais pendant une semaine. Nous aurons avec Anne-Marie des articles sur les grandes informaticiennes du passé comme Ada ou Grace, ou du présent avec trois Prix Turing. Nous parlerons de l’histoire des rapports entre femmes et informatique avec Valérie. Enfin, Isabelle nous proposera une vision gendrée du jeu de l’imitation d’Alan Turing.

Voili-voilà ! Les éditeurs de binaire souhaitent

  • Une année prochaine moins machiste à ses lecteurs, et
  • Bonne fête à toutes ses lectrices !

 

 

Des robots et des humains

Sur Interstices, la revue scientifique sur les sciences du numérique, Jean-Pierre Merlet, enrichit la rubrique sur la robotique d’une réflexion sur les problèmes soulevés par l’apparition de la robotique de service, et le fait que les robots évoluent de plus en plus au contact des humains. Un grand merci de nous permettre de reprendre ce billet ici. Thierry Viéville.

© Inria / Photo H. Raguet

Jusqu’à une période récente, l’utilisation des robots se cantonnait à des lieux où la présence humaine était totalement prohibée. Dans la plupart des cas, ces applications justifiaient l’étymologie du mot robot, qui vient de robota : corvée, travail pénible. Nous assistons actuellement à une évolution phénoménale de ce domaine avec, en particulier, l’apparition de la robotique de service. Les robots vont pénétrer dans tous les milieux, y compris dans la sphère privée. Ce changement s’accomplit suivant deux directions :

  • Des dispositifs spécialisés dans l’exécution d’une tâche. On peut citer en exemple les aspirateurs ou les tondeuses robotisées. Ils dérivent d’objets déjà présents dans les milieux humains, c’est l’évolution technologique et scientifique qui les a rapprochés de la robotique. Les drones s’apparentent aussi à cette catégorie.
  • Des dispositifs multi-fonctionnels, qui affichent en particulier des objectifs de symbiose avec l’humain. Pour simplifier, appelons-les « robots futuristes ». Les plus popularisés médiatiquement sont  les robots humanoïdes. Lorsque est affichée l’ambition que le robot devienne un véritable partenaire pour l’homme, on parle de robot compagnon. On est ici très proche des mythes antiques comme les servantes artificielles du dieu boiteux Héphaïstos ou de la machine servante de Saint Albert le Grand qui, selon la légende, a été démolie à grands coups de canne par Saint Thomas d’Aquin qui y voyait un suppôt de Satan. Il existe également des animaux de compagnie robotisés comme le chien AIBO ou le phoque PARO. Les exo-squelettes comme l’ATLAS du CEA ont pour objectif de suppléer à des déficits de mobilité, voire d’augmenter la mobilité humaine. Les robots de collaboration (cobot) assistent au plus près le travailleur humain.

Un débat s’est engagé dans la communauté robotique pour déterminer si dans un futur relativement proche ces robots s’imposeraient. Examinons cette question non seulement d’un point de vue scientifique et technologique mais aussi d’un point de vue sociétal, sous l’angle de l’acceptation, des enjeux éthiques, etc.

Des progrès matériels

Arduino316Carte Arduino – Photo by Nicholas Zambetti
[CC BY-SA 3.0 or CC BY-SA 3.0], via Wikimedia Commons

Les dispositifs spécifiques se développent grâce aux nouveaux matériels informatiques, des processeurs à très bas coût comme le Raspberry ou les Arduino qui ont été conçus pour permettre d’interfacer en quelques minutes les capteurs nécessaires aux robots, capteurs dont les coûts ont considérablement baissé. La recherche en robotique bénéficie de cette évolution : il est désormais possible de réaliser en quelques heures et pour quelques centaines d’euros seulement des robots qui auraient nécessité, ne serait-ce qu’il y a 10 ans, des centaines d’heures de travail et des dizaines de milliers d’euros.

Les robots futuristes bénéficient eux aussi des progrès en informatique, qui leur permettent de disposer d’une puissance de calcul importante, nécessaire même pour des fonctions basiques. Ainsi, le robot humanoïde NAO, un gros succès de la robotique française dont on a tout lieu de se réjouir, compte 25 servomoteurs qu’il faut simultanément contrôler pour que le robot puisse simplement marcher. Toutefois, cette puissance de calcul reste insuffisante. Ainsi, des robots encore plus sophistiqués, comme ceux utilisés pour les derniers challenges DARPA, souffrent d’une lenteur d’exécution visible sur les vidéos de présentation.

C’est une chose d’obtenir des flux de données massifs issus des capteurs sensoriels. Mais, même en disposant d’une multitude de moteurs, c’en est une autre d’exploiter ces flux, très bruités, pour réaliser une tâche simple comme ouvrir un placard quel qu’en soit le mode d’ouverture, ceci en dépit des progrès réalisés en apprentissage automatique (machine learning). Les robots humanoïdes peuvent réaliser avec élégance quelques tâches spécifiques, ce qui a toutefois nécessité un long travail de la part des mathématiciens et des automaticiens. Bien que la complexité de ces robots justifie pleinement un effort de recherche, il faut cependant reconnaître, au risque de heurter certains roboticiens, que l’expression « robots intelligents » prête à sourire, tant ils font preuve dans beaucoup de cas d’une stupidité déconcertante. Il convient d’ailleurs de ne pas se leurrer sur certaines vidéos spectaculaires comme celle du robot ASIMO serrant la main du premier ministre chinois… alors qu’il est discrètement téléopéré.

Des barrières techniques et économiques

Outre ces limitations « intellectuelles », les robots humanoïdes sont confrontés à des barrières physiques et économiques. La première de ces barrières est liée à la physique de la manipulation : un NAO, malgré son incroyable succès médiatique, aura du mal à soulever un boulon de voiture, tandis qu’un robot capable de soulever 30 kilos en pèsera 600 et requerra 7 kW de puissance électrique, soit un rendement de 5 à 10 %. Cette faible efficacité n’est pas due à un mauvais rendement des actionneurs, qui au contraire est excellent, mais à la structure même du robot : la recherche de l’universalité dans l’exécution des tâches a imposé des architectures mécaniques où une partie importante de l’énergie est consacrée à l’équilibre de la structure au détriment de l’énergie affectée à la tâche.

Et ce mauvais rendement conduit à se heurter à une autre barrière : l’autonomie énergétique. Certaines tâches courantes comme relever une personne ou monter une roue de voiture requièrent une énergie importante. De ce fait, elles sont hors de portée des robots humanoïdes, dont l’autonomie se limite à quelques dizaines de minutes sans réaliser ce genre de tâches.

Une autre barrière est le coût. Les robots humanoïdes font appel à un nombre important d’actionneurs et de capteurs. Ces derniers ont vu leur prix considérablement baisser, mais restent encore souvent relativement coûteux, entre 1000 et 5000 euros pour un scanner laser par exemple. Pour les actionneurs, on fait actuellement appel à des composants industriels très standards et massivement diffusés, dont il semble peu probable que le prix puisse fortement baisser. On entend souvent parler de nouveaux types d’actionneurs, moins coûteux, mais sans mentionner leur rendement. Par ailleurs, une intégration plus poussée faciliterait certainement leur mise en œuvre, mais ne devrait pas avoir un impact considérable sur le coût. Actuellement, il faut compter plusieurs milliers d’euros pour un simple robot de téléprésence, 15 000 euros pour un NAO et plusieurs centaines de milliers d’euros pour un humanoïde de taille plus conséquente. Il y a aussi eu quelques effets d’annonce pour les cobots avec des prix très attractifs comparés aux robots industriels classiques. Mais un examen des robots présentés montre qu’ils ont une puissance et une dextérité réduites, ce qui en limite forcément les usages.

Des mécanismes d’acceptation

Spreading the Gospel of Robot Love« Les robots sont vos amis » – Source : Flickr / Photo Thomas Hawk

Une barrière commune à tous ces robots est le problème de l’acceptation par l’humain. Il est probablement moins critique pour certains robots spécifiques, simplement dérivés d’objets du quotidien. D’autres, dont le design s’éloigne de l’objet équivalent, peuvent susciter une appropriation forte. Par exemple, il existe des sites qui proposent des habits pour personnaliser des robots aspirateurs, comme s’il s’agissait d’un animal de compagnie.

Toutefois, d’autres robots spécifiques posent des problèmes d’acceptation : par exemple, l’utilisation des drones offrant la possibilité de pénétrer dans la sphère privée de tout individu a fait l’objet de réactions très violentes, allant jusqu’à la menace de les abattre.

Pour les robots humanoïdes, le mécanisme psychologique de l’acceptation, qui peut être extrême — du rejet brutal et définitif à une appropriation proche du fétichisme —, n’est pas bien compris.

Une théorie de l’acception est très en vogue en robotique humanoïde : la « vallée dérangeante » (Uncanny Valley). Elle explique que la non-acceptation est liée à des défauts d’apparence entre le robot et l’humain, qui sont jugés d’autant plus repoussants que sur d’autres aspects il peut faire illusion. En conséquence, un robot presque parfait peut être encore plus violemment rejeté que son prédecesseur. Mais la théorie stipule qu’une proximité encore plus proche permettra de passer ce creux, cette vallée du rejet, pour atteindre une acceptation complète. Cette théorie est toutefois très contestée car certaines études, comme celle menée par Christoph Bartneck, semblent montrer que même le plus parfait des humanoïdes n’atteindra jamais le seuil d’acceptation de robots plus simples dont l’apparence les fait classer clairement dans la catégorie des « machines » : la vallée serait plutôt une falaise inaccessible.

On sait en tout cas que les outils classiques d’évaluation comme les questionnaires sont souvent biaisés, car l’objet évalué est très proche de l’humain.  Ainsi, les réponses traduisent plus l’image que l’utilisateur veut donner de lui vis-à-vis des nouvelles technologies que sa réelle appréciation du robot. Pourtant, l’étude de l’acceptation potentielle, en interaction avec des disciplines de sciences humaines et sociales,  devrait intervenir très en amont de la conception, car elle peut imposer des contraintes scientifiques et technologiques très fortes. Par exemple, le président d’une association mondiale de handicapés, en fauteuil roulant, à qui l’on demandait quelles fonctionnalités il aimerait pouvoir ajouter à son fauteuil, a simplement répondu « qu’il soit beau, sinon c’est un frein à mes relations sociales, en particulier avec les enfants ».

Des questions éthiques

Les robots humanoïdes posent aussi de nombreux problèmes d’éthique. La liste en est trop longue pour tous les exposer, mais l’on peut en citer quelques-uns. La proximité avec des humains de machines qui peuvent être relativement puissantes  ou qui sont censées les assister soulève des questions de risque et de responsabilité en cas d’accident. On évolue dans un domaine où la législation est encore extrêmement sommaire. Il est parfois invoqué l’implantation dans les robots des trois lois de la robotique d’Isaac Asimov pour assurer la protection des humains. Indépendamment du fait qu’on n’ait actuellement aucune idée du comment, c’est un peu vite oublier qu’Asimov s’est lui-même amusé à expliquer comment les détourner (dans son roman Face aux feux du Soleil par exemple).

Outre la gestion des risques, on peut se poser des questions sur le rôle des robots dans l’interaction sociale. En admettant que cela soit possible, est-il souhaitable qu’un robot devienne un substitut aux relations humaines ? On peut par exemple parfaitement envisager que la société, poussée par des contraintes économiques ou par sa propre évolution, réduise l’aide humaine aux personnes fragiles pour la remplacer par des machines. Dans Face aux feux du Soleil, Asimov décrit d’ailleurs une société qui a poussé la substitution jusqu’au bout, avec des humains devenus incapables d’assumer la présence physique de leurs semblables.

Dans un autre registre, la robotique, ou des technologies qui en sont dérivées, laissent entrevoir la possibilité de dispositifs d’assistance et de monitoring de la santé qui incontestablement pourraient avoir des impacts positifs. Elles permettraient par exemple de gérer voire de prévenir la chute des personnes âgées qui, chaque année, cause en France la mort de 10 000 personnes. Le premier problème éthique concerne la protection des données médicales recueillies, dont on ne peut pas exclure qu’elles soient utilisées à des fins malveillantes ou pour des escroqueries. Un second problème est soulevé par des psychologues qui craignent un risque de changement de comportement chez les utilisateurs. Les adeptes du Quantified self pourraient en effet devenir totalement fascinés par ces données, même s’ils s’en défendent vigoureusement. Ces psychologues soulignent que ces données peuvent modifier, parfois en mal, la perception d’événements de la vie courante.

Reconstitution d’un appartement complet expérimental. Cet appartement sera équipé d’une grue à cables, MARIONET-ASSIST, permettant d’aider au lever et à la marche et offrant des possibilités de manipulation d’objets. Il comportera aussi des objets communicants qui aideront à résoudre des problèmes de détresse, comme une chute.
© Inria / Photo Kaksonen.

 

Ces mêmes psychologues parlent aussi du risque de perte de l’imprévu, un élément pourtant essentiel dans la vie humaine, dans le cas où l’on suivrait trop strictement les recommandations de ces dispositifs, par exemple, ne pas goûter un aliment exotique parce que sa composition est inconnue ou qu’elle n’est pas à 100% compatible avec les recommandations de l’appareil. Des robots « prescripteurs » ne seraient pas simplement des machines destinées à supprimer ou alléger l’exécution de certains robota, car ils pourraient aller bien plus loin dans leur influence sur leur partenaire humain, de façon parfois fort subtile. La position des autorités de régulation sur ces problèmes est encore incertaine : par exemple, l’autorité américaine de la santé a récemment indiqué que les applications mobiles qui sont censées ne fournir que des informations sur l’état de santé de l’utilisateur, sans émettre de recommandations, ne seraient pas tenues d’être enregistrées auprès de cet organisme et ne font donc l’objet d’aucune vérification de fiabilité. Qu’en serait-il si l’application résidait dans un robot compagnon ?

Conclusion

L’évolution scientifique et technologique permet d’envisager l’utilisation de robots au plus proche de l’humain, certainement avec des effets bénéfiques et des perspectives scientifiques très riches et multidisciplinaires combinant théories et expérimentations. Toutefois, cette potentialité d’impact et la richesse scientifique des problématiques représentent paradoxalement un obstacle au développement du domaine. En effet, elles compliquent l’évaluation de cette recherche, qui nécessite un regard croisé d’experts de sphères différentes. De plus, les développements et les impacts potentiels sont forcément de long terme. Ils sont donc peu compatibles avec le fonctionnement par appel à projet, courant sur des délais relativement courts, alors que le montage d’une seule expérimentation avec des humains peut nécessiter plusieurs années.

Néanmoins, la perspective de robots « intelligents », capables d’accomplir de manière autonome un large éventail de tâches, incluant une interaction profonde avec un humain allant au-delà d’un rapport entre humain et animal, semble être une vision très lointaine dans le temps, même si la présentation médiatique de la robotique peut laisser croire le contraire. Les raisons de cet éloignement dans le temps, outre la difficulté d’élaborer des schémas intellectuels convaincants, repose sur des problématiques physiques et technologiques dont la résolution suppose un nombre important de ruptures technologiques majeures. Et, bien entendu, resteront posés des problèmes d’éthique, de droit et de choix de société qui sont pour le moment très peu traités.

Jean-Pierre Merlet. Version originale : https://interstices.info/robots-et-humains.