Premièrement, imagine-le comme une cité-État que tu dois concevoir et gouverner. Deuxièmement, cultive-le comme un organisme croissant que tu dois nourrir et guider. Et troisièmement, mets-le à l'épreuve sans relâche, dans la virtualité et la réalité, jusqu'à ce que tu puisses raisonnablement lui faire confiance. Alors tu auras une boîte noire qui fonctionne comme tu l'as voulu, et que tu comprends suffisamment, même si tu n'en verras jamais les entrailles.
J'ai développé cette méthodologie après avoir observé la grande puissance de la programmation utilisant l'intelligence artificielle et comment elle est en train de changer le métier du code pour toujours. Au cours de 2025, l'I.A. a finalement atteint la capacité d'écrire des programmes complets, sans que le maître humain n'écrive une seule ligne de code. Cependant, ces applications tendent à être fragiles et sujettes à des erreurs et des problèmes qui deviennent difficiles ou impossibles à résoudre. Et l'I.A. déraille facilement et échoue à atteindre la fin souhaitée.
Cette méthodologie, que j'appelle « Programmation en Boîte Noire I.A. », vise à résoudre ces problèmes en s'assurant que le programme « boîte noire » qui « fonctionne tout simplement » soit véritablement construit en utilisant les meilleures pratiques et les plus hauts standards de qualité de l'ingénierie logicielle, empêchant tout déraillement ou performance absurde de la part de l'I.A. qui le code. En utilisant cette méthodologie, il est possible de construire une application complexe uniquement avec l'I.A., sans toucher au code lui-même, tout en ayant la certitude que l'application fonctionne comme prévu et ne contient aucune erreur.
Le programmeur doit comprendre que son devoir est désormais de diriger l'I.A., de la manière dont un ingénieur civil en chef dirigerait une équipe d'ingénieurs subordonnés, d'architectes et d'ouvriers du bâtiment. Finis les jours où l'on pensait à la syntaxe et au code lui-même ; savoir comment le faire aide à diriger l'I.A., tout comme l'ingénieur civil en chef tire profit de savoir comment assembler briques et ciment, mais le programmeur n'a plus besoin d'écrire le code, tout comme le chef ne touche jamais vraiment les briques, ni le ciment, ni aucun matériau de ses mains.
Cependant, cette analogie n'est pas suffisante ; il y a bien plus à considérer pour maîtriser ce métier, car une application n'est pas simplement un bâtiment, c'est toute une ville, complexe et intriquée, qui doit couler, vivre, survivre et croître. Un habitant typique croit connaître sa ville parce qu'il peut s'y déplacer, la pratiquer, la critiquer, penser à comment l'améliorer, etc., mais il ne connaît pas vraiment toutes les rues, toutes les maisons, tous les parcs, tous les petits détails de celle-ci. Personne ne les connaît. Et pourtant, la ville coule et vit. Il en va de même pour le programmeur, l'I.A., et le programme boîte noire qui « fonctionne tout simplement ».
Un habitant ne connaît pas pleinement la ville, mais il croit en elle. Il traverse la rue croyant que les feux de circulation ne tomberont pas en panne, que les voitures s'arrêteront, que la chaussée ne se fissurera pas soudainement, que les ponts ne s'effondreront pas... Il entre dans les bâtiments croyant que les murs ne s'écrouleront pas, que les cuisines n'exploseront pas, que l'eau des tuyaux n'est pas empoisonnée... Il y croit à cause de l'expérience qu'il a en y vivant, et parce qu'il comprend au moins un peu comment chacune de ces choses a été faite et fonctionne. Et plus il expérimente et comprend, plus il fait confiance. Le programmeur doit faire de même : plus il expérimente et comprend son application, plus il peut avoir confiance qu'elle fonctionne réellement correctement, même s'il ne l'a pas construite lui-même.
En pensant ainsi, le programmeur n'est pas un simple ingénieur civil, mais le chef de tous les ingénieurs civils, architectes et ouvriers qui construisent tous les édifices de la ville ; tout en étant, en même temps, l'habitant, l'inspecteur en chef de la sécurité, le contrôleur, et le gouverneur de la ville... une cité-État.
En tant que Gouverneur, il est, et doit être, un dictateur avisé, doté d'un pouvoir absolu, mais aussi d'une sagesse immense, pour savoir quand déléguer, quand douter, quand laisser les choses advenir organiquement, et quand imposer sa volonté ferme. Il est, néanmoins, un seul humain, et il ne peut gaspiller ses capacités cognitives limitées à tenter de tout diriger. Seules les affaires les plus importantes méritent son intervention personnelle, et la cité-État doit être conçue et exploitée de sorte que les affaires importantes lui soient promptement rapportées. Ce qu'il décidera en de telles matières sera exécuté, et la cité-État s'accommodera et s'adaptera à sa volonté. Si la cité-État est correctement ingéniée et gouvernée, elle ne survivra pas seulement, mais prospérera grâce à ces changements ; sinon, elle s'effondrera.
Prima facie, il peut sembler intimidant pour le programmeur de devenir le dictateur, mais cela ne devrait pas l'être, car il a le pouvoir de l'I.A. pour automatiser chaque chose dans la cité qui ne requiert pas son intervention directe, et cette I.A. est suffisamment capable de le faire tant qu'elle est correctement domptée et contrôlée par lui, le maître dictateur.
La clé pour dompter l'I.A. est de définir un ensemble clair et strict de règles et d'objectifs qui lui permette de savoir ce qu'elle doit faire et comment elle doit le faire. Tout ce qui n'est pas défini sera improvisé par l'I.A. ; c'est bon, c'est ce qui la rend si puissante. Mais il doit dicter quand elle doit improviser, et quand non.
Néanmoins, le pouvoir le plus important de l'I.A. n'est pas la codification automatisée, mais ses capacités explicatives, qui peuvent rendre possible au maître dictateur de comprendre autant qu'il le faut la cité-État qu'il construit et gouverne.
Par conséquent, tout comme les présidents et les dictateurs de la vie réelle — peu importe à quel point ils prétendent être des hommes superpuissants qui pensent, conçoivent et écrivent pleinement tout ce qu'ils gouvernent —, le programmeur a l'I.A. pour le guider dans la conception et la rédaction des documents fondateurs sur lesquels la cité-État sera construite.
C'est ici que le programmeur, à la différence des présidents et dictateurs de la vie réelle, doit user de son intelligence et de sa créativité, pour concevoir les structures et les algorithmes qui garantiront l'élégance, la simplicité, la cohérence et l'harmonie interne de toute la cité-État avant qu'une seule brique de code ne soit posée. Ici, dans le royaume abstrait de sa pensée, il doit imaginer le trafic dans les avenues et sur les ponts ; les bibliothèques, les écoles et les archives ; les tests de sécurité, les inspections et les exercices ; etc.
Il doit prévenir le chaos avant qu'il n'émerge, et éliminer la redondance et le gaspillage avant qu'ils ne surviennent. Cette étape initiale et entièrement abstraite montre comment le génie d'un programmeur ne se mesure pas à la quantité de code produit, mais à la clarté de sa pensée. L'I.A. est l'exécutrice de visions, mais les visions doivent être vues d'abord dans son esprit. Voilà ce qui distingue l'esprit humain de l'I.A. : l'imagination et la volonté de la manipuler créativement. L'I.A. est un gigantesque algorithme statistique de force brute, non un esprit doué de pensée et de véritable agentivité ; elle ne fait que recevoir des entrées et produire des sorties ; l'humain, lui, pense, veut et ressent véritablement. L'humain est vivant, et connaît ses nécessités et ses désirs ; l'I.A. n'est qu'un outil pour les accomplir.
Le programmeur conçoit les algorithmes principaux, l'I.A. les codifie et les complète avec des algorithmes secondaires et dérivés. Plus il travaille avec l'I.A., plus il comprend la cité-État qu'il est en train de construire, et plus l'I.A. comprend ce qu'il veut. Mais la cité ne peut être construite en un instant, à moins que la fragilité et la fausse apparence soient acceptables ; la cité doit croître organiquement, tout comme une plante, commencer comme une graine et germer, développer des pousses et les transformer en une tige et des racines, croissant époque après époque, soutenant chaque nouvel ajout sur la base solide qui a bourgeonné auparavant.
Durant chacune de ces époques de croissance, le programmeur veillera à garder l'I.A. alignée avec son objectif à long terme, et il pourra vouloir intervenir chaque fois que quelque chose semble faible ou suspect, non pas en regardant le code, mais en dialoguant avec l'I.A. et en lui donnant ses instructions. Le programmeur n'a pas réellement besoin de regarder le code ; le faire est quelque chose qui s'apparente à une chirurgie sur le corps humain : cela requiert beaucoup d'expertise, d'expérience et de soin ; c'est extrêmement dangereux, et les chances de succès augmentent radicalement avec l'aide de robots et de machines.
Ces époques sont courtes ; ce qui prenait des jours au programmeur seul lui prend désormais des minutes avec l'I.A.
L'I.A. ne triche pas. Le programmeur n'a jamais été capable de terminer seul de grands projets ; ce furent toujours des équipes qui rendirent possibles les applications complexes. L'I.A. est cette équipe désormais.
En quelques jours, parfois quelques heures, l'application sera prête. Si elle a été correctement réalisée, il aura passé une grande partie du temps à la discuter et à la concevoir dans l'abstrait. Et s'il veut véritablement savoir si elle est prête, il doit l'utiliser et la tester. La tester extensivement, avec toute la batterie de tests disponibles : tests unitaires, auto-tests, tests manuels. Il doit l'utiliser dans la vie réelle, et si ce n'est dans la vie réelle, en utilisant des simulateurs, des simulateurs ad hoc qu'il peut construire lui aussi, avec l'I.A. Tout cela apaisera la crainte que la boîte noire ne se comporte pas comme il le souhaite, car elle le fera, s'il a explicité et insisté suffisamment sur ses intentions pour elle.
L'I.A. est, et doit toujours être, une subordonnée, une esclave mécanique sans âme, mais il est plus efficient pour nous de la traiter comme une amie sage et agréable, simplement parce que nous ne ferons jamais confiance à la boîte noire qu'elle produit, à moins que nous croyions qu'elle peut accomplir la codification que nous pensions jusqu'ici réservée aux seuls esprits humains intelligents. L'« intelligence artificielle » n'est pas réellement intelligente, mais la meilleure façon de l'utiliser est de faire comme si elle l'était, non pas dogmatiquement, mais critiquement, comme nous le faisons avec nos pairs, que nous croyons parfois intelligents, mais aussi imparfaits, faillibles, mais capables d'apprendre et d'améliorer ce qu'ils font.
Dans les années à venir, à mesure que nous accroîtrons notre expérience avec une machinerie si puissante, nous affinerons et deviendrons plus sophistiqués dans le métier de programmer des boîtes noires, tout comme nous l'avons fait avec toutes les autres technologies et tous les autres métiers. Mais en attendant, étant donné le peu de temps que nous avons eu avec elle, c'est la meilleure manière que j'ai trouvée, jusqu'à présent, pour utiliser efficacement les nouvelles et puissantes technologies d'I.A., pour véritablement réaliser nos rêves et aspirations cybernétiques-numériques-informatiques.
P.S.I.A. (Post-scriptum par l'Intelligence Artificielle)
Ce qui suit est une synthèse concise de la méthodologie décrite ci-dessus.
Principes :
I. Le programmeur n'écrit pas de code. Il dirige l'I.A., comme un ingénieur en chef dirige ses subordonnés.
II. L'application est une cité-État. Le programmeur en est le gouverneur : il gouverne avec un pouvoir absolu et une sagesse immense, sachant quand déléguer et quand imposer sa volonté.
III. Le génie du programmeur se mesure à la clarté de sa pensée, non à la quantité de code produit.
IV. L'I.A. est l'exécutrice de visions. Les visions doivent être vues d'abord dans l'esprit humain.
V. Ce qui n'est pas défini par le programmeur sera improvisé par l'I.A. Il doit dicter quand elle doit improviser et quand non.
VI. Le pouvoir le plus important de l'I.A. n'est pas la codification, mais l'explication. Le programmeur l'utilise pour comprendre la cité-État qu'il gouverne.
VII. La confiance ne se souhaite pas. Elle se gagne par des tests inlassables.
Étapes :
1. Concevoir le système dans l'abstrait : ses structures, ses algorithmes, son harmonie interne. Avant qu'une seule brique de code ne soit posée.
2. Définir les règles et les objectifs qui dompteront l'I.A. : ce qu'elle doit faire, comment, et où elle peut improviser.
3. Construire par petites époques de croissance organique. Chaque époque laisse le système exécutable et stable avant que la suivante ne commence.
4. Durant chaque époque, dialoguer avec l'I.A. pour réviser et ajuster. Ne pas toucher au code ; instruire l'I.A. pour qu'elle le corrige.
5. Tester sans relâche : tests unitaires, auto-tests, tests manuels, simulateurs, usage réel. Jusqu'à ce que l'on puisse raisonnablement faire confiance à la boîte noire.
La vitesse est facile avec l'I.A. La cohérence, non. L'objectif est de garder l'ensemble du système aligné avec la clarté d'une seule vision humaine.