Je vais en effet aborder des éléments voisins, mais sous un angle assez différent. Je pense que le problème majeur de la France est de n'avoir pas cru à l'industrie de l'informatique. Toute ma vie, j'ai ainsi entendu dire, à ce propos, qu'il s'agissait d'une mode qui allait passer. Fort heureusement, les choses changent en ce moment, et je suis ravi de pouvoir avoir cette discussion ici aujourd'hui. Il faut croire à l'informatique.
Il faut avoir conscience du fait que ce secteur est différent des autres. Pourquoi Uber a-t-il du succès ? Parce qu'à la différence d'un taxi, Uber considère que l'important n'est pas d'avoir une voiture, mais de savoir qui veut aller où, et quand. Or, l'information est un élément beaucoup plus léger que les voitures, si bien qu'Uber est finalement une petite société. Je pourrais multiplier les exemples à l'envi.
Je souhaiterais revenir sur plusieurs points évoqués précédemment. Parmi les sous-domaines de l'informatique, je connais particulièrement bien celui des logiciels dits critiques, c'est-à-dire dont l'action est particulièrement importante. J'ai par exemple beaucoup travaillé dans le secteur de l'aviation. Mais on constate aujourd'hui qu'APB est également critique, de même que les impôts. Il existe des problèmes de sécurité massifs partout, qui ne sont pas traités. Ainsi, les médecins, qui sont très vigilants vis-à-vis des médicaments, qu'ils soumettent à des études très sérieuses et poussées, prescrivent des pacemakers, dont des travaux ont montré qu'ils possédaient des milliers de trous de sécurité, quel que soit le fabricant concerné. Il est ainsi très facile de prendre le pouvoir sur un pacemaker. Or, personne ne s'est jamais occupé de ce problème.
Faire des lois sans comprendre de quoi il est question est difficile et risqué. La discussion au sujet d'APB a, de ce point de vue, été très intéressante, parce qu'elle a mis en lumière un manque évident, en termes de compréhension. En France, l'un des problèmes concerne l'insuffisance des formations à l'informatique. Ainsi, un médecin peut parvenir au terme de ses études sans avoir jamais bénéficié d'aucun enseignement sur le sujet.
Les questions de vocabulaire sont aussi très intéressantes. Tout le monde parle des algorithmes, à ceci près que le terme n'est pas approprié pour désigner ce dont il est question ici. Il existe, en informatique, au moins quatre étapes, l'algorithme n'étant que l'une d'entre elles.
La première étape est la spécification. Ceci passe par un certain nombre de questions. Que veut-on faire et ne pas faire ? Quels sont les critères de succès ? Les échanges précédents ont montré qu'il n'était pas certain que ces critères aient toujours été définis en amont. Or ceci constitue pourtant un élément critique. Comment élaborer l'explicabilité ? Il faut savoir que, dans les algorithmes d'apprentissage modernes, sur la médecine par exemple, on ne sait pas gérer l'explicabilité. Il faut réfléchir longuement à cette question. Quels sont les dangers, les effets pervers cachés ? Si l'analyse de ces effets n'intervient qu'a posteriori, ceci signifie que l'on n'a pas compris ce qu'était un système critique. Par exemple, dans le domaine aéronautique, on étudie les effets cachés avant les vols. On peut analyser les spécifications. Il existe des outils très puissants pour cela, différents de ceux utilisés pour écrire les algorithmes. Une spécification outillée n'est pas du même ordre qu'une spécification non outillée. Il existe également des spécialistes de ce type d'analyse.
L'algorithme n'apparaît que dans un deuxième temps, une fois que l'on a décidé précisément ce que l'on voulait faire. Un algorithme est un objet abstrait, une façon d'organiser des calculs. Mais ce n'est pas cela que va faire le système : le système exécute des logiciels, qui sont l'écriture, dans un autre langage, de ce que l'on espère être l'algorithme. Le fait que le logiciel fasse ce que l'on avait envie de faire dans l'algorithme n'est absolument pas évident. Je travaille précisément sur ce genre de vérification. Ainsi, il existe des processus de certification, qui indiquent que le logiciel obéit bien à l'algorithme. Ces processus sont intéressants, mais difficiles à concevoir et employés très inégalement. La politique ne s'en occupe pas. Ils sont toutefois obligatoires mondialement, et standardisés sur les avions, qui utilisent des logiciels de très haute qualité. En revanche, ils n'existent pas pour les voitures, qui sont dotées de logiciels de moindre qualité. J'ai ainsi consigné dans l'ouvrage que j'ai écrit à ce sujet de nombreux bugs, vraiment graves, survenus dans les voitures. L'industrie automobile a obtenu d'avoir pour règle qu'on ne lui impose pas de procédures, grâce à un important travail de lobbying.
De quoi parle-t-on lorsqu'il est question de « publier le code » ? S'agit-il de publier les spécifications, l'algorithme ou les programmes ? Il faut faire les trois. Comment vérifier les programmes ? C'est là le point le plus difficile. Il est beaucoup plus compliqué de vérifier un programme que de l'écrire. Dans la certification des processus de haute sécurité, ce n'est par ailleurs pas la vérification qui compte, mais la vérification de la vérification. Par exemple, le bug d'Ariane 5 est dû à une absence de vérification de la vérification, la première vérification étant fausse.
Ne parler que d'algorithme revient à ignorer trois des quatre aspects du processus. Il faut donc veiller au sens des mots que l'on emploie.
Le grand danger de l'exercice est de croire, comme dans bien des métiers, que l'on va pouvoir, seul, mener à bien ces quatre phases. Il existe des solutions. M. Grenet nous a présenté précédemment un exposé dans lequel il a indiqué qu'il existait en France, dans le domaine des sciences sociales, des spécialistes qui s'attachent à comprendre quelles sont les bonnes méthodes algorithmiques. Certains informaticiens s'occupent également de ces questions. Or, aucune des deux professions n'a été consultée. Elles n'ont pas davantage eu l'occasion d'échanger ensemble. Il reste donc des progrès considérables à accomplir dans ce domaine. Par exemple, APB intéresse beaucoup les informaticiens. Il a été dit que l'algorithme d'APB avait été publié : or ce n'est pas vrai. Ce qui a été publié n'est pas lisible. La situation est comparable à celle d'un mathématicien qui publierait un théorème, et inviterait les gens à le croire sur parole, sans l'expliciter. Ce n'est pas suffisant.
Ceci cause de vrais problèmes. Rater l'application d'un système informatique peut générer des effets pervers extrêmement toxiques. Ceci s'est vu dans le cas d'APB, mais aussi dans d'autres domaines. Le système de paie des armées en est également un très bel exemple, qu'il serait intéressant de disséquer. La sonde Schiaparelli à un milliard de dollars, qui s'est écrasée sur Mars, a été victime d'une informatique stupidement conduite, alors que de nombreux professionnels savent faire cela.
Par ailleurs, la recherche française est particulièrement forte sur ces points. Il faut le savoir et en profiter. Le sujet est à prendre au sérieux et ne doit pas être considéré uniquement sous un angle littéraire, mais de façon scientifique. En France, on dispose de capacités énormes pour ce faire. La recherche française est très performante dans ce domaine, bien que l'enseignement ne propose quasiment rien dans ce secteur. Est-t-il raisonnable que des gens arrivent au baccalauréat en n'ayant jamais entendu parler de ce sujet ? Des avancées ont eu lieu, mais ceci mérite d'être rediscuté, car ces questions vont devenir centrales dans le monde actuel.