La langue m’intéresse aussi parce que, qu’est-ce que programmer un ordinateur ? C’est parler à quelqu’un de totalement obéissant, qui ne pose jamais de question, qui ne s’ennuie jamais. Quand on y pense, c’est une activité belle et absurde de parler à un abruti aussi absolu que l’ordinateur.
Gary Jules - Mad World
Vous dites : « Ça permet à l’homme de faire des choses qu’il est incapable de faire. » Sans doute. Mais en même temps, on a connu des déceptions sur la capacité de l’ordinateur à faire des choses que les hommes font assez facilement. C’est tous les errements de ce qu’on appelle l’intelligence artificielle.
Je n’ai jamais été déçu par l’intelligence artificielle parce que je n’ai pas cru une seule seconde en l’intelligence artificielle. Jamais.
Je n’ai jamais cru que les robots pourraient faire des actions intelligentes. On dit : « Mais l’ordinateur sait jouer aux échecs. » Oui, ça prouve que les échecs sont un jeu facile, c’est tout. C’est dur pour les hommes, mais ce n’est pas dur en soi. Un homme ne sait pas faire une addition. En revanche, il sait composer de la musique.
Et est-ce qu’aujourd’hui, vous changez d’avis en voyant les progrès de ces dernières années en intelligence artificielle ?
Non. Bien sûr, l’intelligence artificielle a énormément apporté à l’informatique. Des concepts fondamentaux comme les langages fonctionnels, les langages objets, le traitement de l’image, l’interface homme-machine sont nés de gens qui pensaient faire de l’intelligence artificielle, et qui souvent s’en sont écartés.
Fondamentalement, l’ordinateur et l’homme sont les deux opposés les plus intégraux qui existent. L’homme est lent, peu rigoureux et très intuitif. L’ordinateur est super rapide, très rigoureux et complètement con. On essaie de faire des programmes qui font une mitigation entre les deux. Le but est louable. Mais de là à y arriver...
Vous dites que les hommes vous ont déçu. En quoi ?
En France, on n’a pas cru en l’informatique. On a dit que c’était une mode et que ça allait passer. Ça, ça m’a beaucoup déçu. Dans les années 80, dans les grandes écoles, on se demandait si l’informatique était un sujet ou pas. En 1985, à l’X [surnom de Polytechnique, ndlr], on se demandait encore s’il fallait l’enseigner. Dans d’autres écoles, on se posait encore ces questions en 2000.
Comment vous l’expliquez ?
La France est un pays minier, orienté vers la matière et l’énergie. On a fait le TGV, l’Airbus, mais on n’a jamais fabriqué un ordinateur décent. Raisonner sur la matière et l’énergie, et raisonner sur l’information, c’est très différent.
Et quelles sont les conséquences de cet aveuglement ?
On le paie par des retards considérables. Sur la scène industrielle, on a beau expliquer qu’on est très forts et très innovants, les autres n’ont pas l’air au courant.
En logiciel, on n’a jamais trop existé, sauf dans des domaines très précis où on est très forts. Mais regardez l’imagerie médicale, on était leader mondial et on s’en est séparé, parce qu’on a considéré que c’était un domaine sans avenir.
Ça, c’est de l’ordre de l’erreur industrielle, mais en quoi est-ce aussi une erreur intellectuelle ?
Dans toute révolution, quand on est derrière, on a l’air con. Et on le voit très bien dans le système de décision français où les gens sont très ignorants de l’informatique ; on y parle des problèmes du passé.
Par exemple, on vient de se rendre compte qu’il y avait des problèmes de sécurité des données personnelles dans les réseaux. Il est temps. Sauf que que les vrais problèmes de sécurité, ils vont se poser maintenant dans les voitures et dans les systèmes intégrés.
Pourquoi les systèmes embarqués et les objets connectés vont-ils poser des problèmes de sécurité informatique ?
Déjà parce qu’il y a beaucoup plus d’objets que d’hommes. La plupart des ordinateurs sont embarqués, il faut s’y faire. 98% de l’informatique est dans les objets, sans contact direct avec l’homme.
C’est très bien de s’inquiéter de la sécurité de son téléphone, mais les freins de sa bagnole, c’est autrement plus critique. Or des gens ont montré qu’on pouvait prendre le contrôle des freins et les désarmer, à distance. Tout ça est ignoré. Il serait temps de s’occuper de ce problème avant qu’il ne devienne vraiment emmerdant.
Pour un informaticien, en quoi la sécurité informatique pose un problème théorique intéressant ?
C’est un des problèmes les plus durs à résoudre parce qu’on doit prouver qu’un système marche contre un ennemi omnipotent. Or l’omnipotence est, par essence, indéfinissable.
Prenons un algorithme de cryptage comme RSA. On peut montrer qu’en 4096 bits, la complexité des calculs nécessaires pour le casser est inaccessible aux machines actuelles. C’est donc un code sûr. Mais, en fait, pas vraiment. Adi Shamir, le S de RSA, a réussi à casser un code 4096 bits en écoutant le bruit que faisait son ordinateur sur un téléphone. C’est ce qu’on appelle un canal caché. On n’avait pas pensé à ça.
La sécurité informatique consiste à montrer qu’un truc marche contre un ennemi dont on ne connaît pas les armes. C’est donc un problème scientifiquement impossible, parce qu’on ne peut pas le poser correctement.
La sécurité informatique est donc une discipline vouée, soit à une paranoïa folle consistant à imaginer l’inimaginable, soit à l’échec ?
Au contraire, elle est vouée au compromis. Son postulat c’est : toute attaque est imaginable, mais il faut la rendre trop chère. Un système est sûr non pas quand il est inattaquable – ce qui est théoriquement impossible –, mais quand ça coûte trop cher de l’attaquer.
La sécurité informatique consiste d’abord à s’assurer que les algorithmes ne sont pas faux. Un algorithme faux est une faille.
Et vous avez beaucoup travaillé sur le bug. Une question bête : comment est-il encore possible qu’il y ait des bugs ?
La question serait plutôt : comment est-il possible qu’il n’y en ait pas ?
Au départ, on a toujours la même opposition : l’homme qui va penser le programme, l’écrire et le tester. Et l’ordinateur qui va l’exécuter. L’homme est incomplet, incapable d’examiner les conséquences de ce qu’il fait. L’ordinateur, au contraire, va implémenter toutes les conséquences de ce qui est écrit. Si jamais, dans la chaîne de conséquences, il y a quelque chose qui ne devrait pas y être, l’homme ne s’en rendra pas compte, et l’ordinateur va foncer dedans. C’est ça le bug.
Un homme n’est pas capable de tirer les conséquences de ses actes à l’échelle de milliards d’instructions. Or c’est ça que va faire le programme, il va exécuter des milliards d’instructions.
Mais il existe des méthodes mathématiques, et informatisées, qui permettent de faire des calculs dont le principe est proche de celui de raisonnements humains, avec en plus les caractéristiques de l’informatique, c’est-à-dire sans aucun humour, sans aucune fatigue, et sans aucune erreur.
Ces programmes ne consistent donc pas à tester dans toutes ses possibilités ?
C’est beaucoup plus malin de faire autrement. Avec un autre ordre de preuve. Comme en mathématiques.
Prenons le très vieux théorème grec : « Il existe une infinité de nombres premiers. » C’est impossible à prouver par l’énumération, puisqu’il faudrait un temps infini. On va donc utiliser les mathématiques. Les mathématiques consistent à avoir des arguments d’un autre ordre pour montrer qu’il existe une infinité de nombres premiers.
De plus en plus, on a recours à ce type de preuves – dites formelles – pour vérifier la solidité des programmes informatiques.
Comment expliquez-vous alors que quand on achète un smartphone, il y ait des bugs dans les applications, le système d’exploitation, etc. ?
Parce que tout ça est fabriqué par des hommes qui n’ont pas la préoccupation de faire juste.
Pourquoi ?
Parce que leur préoccupation est de faire des sous. Et que ça ne dérange pas trop les clients. Un smartphone qui a des bugs, on le reboote, et voilà.
Dans un smartphone, il y a approximativement 50 millions de lignes de code. C’est gigantesque. On ne peut pas imprimer 50 millions de lignes de code. Il faudrait 500 000 pages de chacune 100 lignes. Sur ces 50 millions, la moitié ont été écrites par des débutants. Et puis, quand les applis sont mises en service, elles ne sont pas cuites. C’est comme si quelqu’un ouvrait un resto et apprenait la cuisine en même temps.
Ça ne marche avec les smartphones que parce que les gens sont très tolérants. On est beaucoup moins tolérant dans un avion.
Et pourtant, même dans les avions où les systèmes embarqués sont très sûrs, il peut y avoir des accidents à cause de problèmes de sondes, comme dans le cas du Rio-Paris...
Les sondes Pitot, c’est un capteur majeur. Si on ne donne pas la bonne information à l’informatique, elle fait n’importe quoi. Mais ce n’est pas un problème informatique à proprement parler. Les accidents sont rarement le fait de problèmes strictement informatiques. Le plus souvent, c’est le fait de l’interaction homme-machine.
Dans l’avion classique, l’homme a des sensations. Avec un système embarqué, il n’a pas de sensation. Dans le cas de cet accident, on peut supposer que les hommes, ne comprenant pas la logique avec laquelle fonctionne l’ordinateur et n’acceptant pas cette logique, aient agi contre la machine.
L’interface homme-machine est souvent centrale. Il y a très peu de temps qu’on sait faire des systèmes intuitifs, comme les smartphones par exemple. Rappelez-vous les premières machines pour acheter des tickets à Orlyval, il fallait mettre des travailleurs d’utilité collective à côté pour aider les gens à acheter leur ticket. C’est très dur de rendre l’informatique intuitive.
Pourquoi c’est si dur ?
On revient toujours au même problème du gouffre entre l’intelligence humaine et la connerie de la machine. Programmer, ça consiste à combler un gouffre absolu entre l’intelligence et la connerie. Quand j’enseignais à des petits, je leur donnais comme consigne : « Essayer d’être aussi bêtes qu’un ordinateur. » Les enfants me répondaient : « C’est trop difficile. »
Des gens pensent – et écrivent – que le fait de côtoyer des machines en permanence nous rend plus bêtes. Vous en dites quoi ?
Je n’y crois pas une seule seconde. Côtoyer un moteur électrique n’a jamais abêti personne. Mais c’est une très vieille discussion, elle a commencé avec les textes expliquant que l’écriture abêtit les gens. Ça ne les abêtit pas. Ça les rend juste différents.
Différents en quoi ?
Des choses qui étaient difficiles deviennent triviales. Et des choses qui étaient très faciles deviennent difficiles. Avant, il était impossible de savoir quand allait arriver notre bus, maintenant c’est trivial : c’est affiché.
D’accord, mais en quoi ça nous change ?
Ça change vachement. On évite de perdre son temps à attendre le bus, on peut marcher. C’est peut-être mineur, mais à la fin de la journée, ça n’est pas rien.
Et qu’est-ce que l’informatique rend plus compliqué ?
Les relations humaines. Quand on voit des gens qui sont en permanence accrochés à leur smartphone, qui ne s’aperçoivent même pas qu’il y a des gens qui sont autour d’eux, on constate que la relation humaine est modifiée. Mais je ne suis pas sûr que ça durera longtemps.
On l’a vu avec les téléphones portables. Au début, c’était épuisant parce qu’ils sonnaient tout le temps. Aujourd’hui, les jeunes ne téléphonent plus. Les téléphones portables ne sonnent plus. Ils vibrent dans leur poche. Ceux qui crient dans les wagons de TGV, ce sont les vieux, pas les jeunes. Ce qui montre bien que les problèmes peuvent être transitoires.
Pourquoi, depuis le début de vos travaux, la question du temps vous a-t-elle autant intéressé ?
Le temps m’intéresse d’abord parce que c’est le plus grand mystère. Personne ne l’a jamais compris. L’espace, on le comprend parce qu’il est réversible : on se promène dedans et on revient. Le temps, non. Il n’a qu’une seule direction. On ne revient pas. On ne peut pas le remonter.
En physique, on ne sait pas ce qu’est le temps. D’ailleurs, à l’heure actuelle, on sait qu’on ne pourra pas savoir ce que c’est. On ne peut même plus faire des horloges, on ne peut même plus définir la seconde. Depuis Einstein, on savait en théorie qu’on ne peut plus définir de temps commun à tout le monde. Maintenant, on sait que c’est vrai en voyant que les horloges hyper précises ne sont pas synchrones. Et ça nous gêne, parce qu’énormément de processus dépendent du temps. Par exemple, le téléphone portable, c’est une gestion très complexe du temps.
Et pendant très longtemps, l’informatique a pris grand soin de ne pas parler du temps. Ou alors juste en termes de temps de calcul, mais le temps de calcul, ça ne parle pas du temps. Et d’ailleurs, dans des langages comme C, Pascal, Java, il n’y a rien qui parle du temps ou des événements.
Et quelle est la chose dont vous savez que vous ne la verrez pas parce que vous ne vivrez pas assez longtemps pour la voir, mais dont vous savez que ça va arriver parce que l’informatique la rend possible ?
La compréhension de ce que c’est qu’une langue. L’informatique nous permet de comprendre beaucoup mieux ce genre de choses. Mais ça va être très long parce que la langue est un phénomène très compliqué.
Qu’est-ce qu’il faudrait comprendre ?
Pourquoi les langues sont foutues comme ça. Pourquoi elles sont aussi ambiguës et aussi compréhensibles en même temps.
La langue m’intéresse aussi parce que, qu’est-ce que programmer un ordinateur ? C’est parler à quelqu’un de totalement obéissant, qui ne pose jamais de question, qui ne s’ennuie jamais. Quand on y pense, c’est une activité belle et absurde de parler à un abruti aussi absolu que l’ordinateur.
1 commentaire:
Bel exemple d'intelligence réelle, profonde, lucide, et donc si rare en France.
Enregistrer un commentaire