Anciennes applications mathématiques ressuscitées avec des agents de codage modernes, et nouvelles applications créées
(terrytao.wordpress.com)- Environ 24 applets mathématiques Java 1.0 qui n’étaient plus prises en charge ont été portées vers JavaScript à l’aide d’agents de codage IA modernes, avec en plus des outils de visualisation qui n’avaient pas pu être réalisés à l’époque
- Les applets existantes ont été restaurées en quelques heures, avec des améliorations graphiques comme l’affichage en couleur des ensembles de Besicovitch, ainsi que la réimplémentation de l’applet honeycomb créée en 1999 avec Allen Knutson
- Pendant le portage, le seul bug introduit par l’agent était un problème mineur lié à la gestion du glisser-déposer ; à l’inverse, il a trouvé 2 bugs non identifiés dans le code existant, si bien que la qualité globale du code est restée d’un niveau comparable
- Une idée d’« Inkscape de l’espace de Minkowski », abandonnée en 1999 en raison de sa complexité, a été implémentée en quelques heures de vibe coding sous la forme d’une version alpha d’une application de visualisation de la relativité restreinte ; une visualisation de la conjecture de Gilbreath a aussi été créée
- Pour les visualisations auxiliaires qui ne sont pas au cœur d’un argument mathématique, le risque lié aux bugs dans du code généré par LLM est relativement faible, ce qui permet d’envisager leur usage comme compléments interactifs à de futurs articles
Les débuts et l’arrêt des applets Java 1.0
- À partir de 1999, l’auteur s’est intéressé à l’usage des machines pour étudier et enseigner les mathématiques, et a développé en Java 1.0 plusieurs applets pour des cours d’analyse complexe et d’algèbre linéaire
- Ces applets ont servi non seulement pour les cours, mais aussi pour visualiser divers objets mathématiques, notamment les honeycombs et les ensembles de Besicovitch
- Malgré un certain succès, la programmation manuelle demandait beaucoup de temps, et lorsque les standards du Web ont cessé de prendre en charge cette version de Java, les applets ont cessé de fonctionner
Portage vers JavaScript avec l’IA
- En transférant les anciennes pages Web et données de blog vers un dépôt plus facile à maintenir, l’auteur a eu recours à une assistance IA moderne
- À titre d’expérience, il a demandé à un agent de porter les anciennes applets vers un langage aujourd’hui pris en charge, et le choix final s’est porté sur JavaScript
- Environ 24 applets existantes ont refonctionné en quelques heures, avec certaines améliorations graphiques
- L’applet sur les ensembles de Besicovitch est passée d’un affichage monochrome à un affichage en couleur
- L’applet honeycomb, créée en 1999 avec Allen Knutson et particulièrement difficile à implémenter manuellement, a elle aussi été restaurée
Nouveaux bugs et erreurs découvertes dans le code existant
- Les agents de codage basés sur des LLM peuvent introduire des bugs évidents ou subtils, mais le seul nouveau problème constaté lors de ce portage a été un bug mineur
- Dans une applet d’analyse complexe, un comportement indésirable se produisait lors d’un glisser-déposer hors de la zone principale
- À l’inverse, l’agent a découvert 2 bugs non identifiés cachés dans le code existant ; en les prenant en compte, la qualité globale du code est d’un niveau comparable
- Comme ces applets sont des supports visuels auxiliaires et non des composants essentiels d’un raisonnement mathématique, le risque associé à d’éventuels bugs reste relativement faible
L’outil de relativité restreinte abandonné en 1999
- Le portage des applications existantes s’étant déroulé sans grande difficulté, l’auteur a également tenté de créer de nouvelles applications
- En 1999, il avait imaginé pour la visualisation de la relativité restreinte quelque chose comme un « Inkscape de l’espace de Minkowski », mais Inkscape n’était même pas encore sorti à l’époque
- Il avait commencé à écrire du code Java, mais la complexité était devenue difficile à gérer et le projet avait été abandonné
- Après quelques heures de vibe coding avec un agent IA, il a implémenté une applet de diagrammes d’espace-temps correspondant à l’idée initiale
- Un résumé des échanges de création a aussi été publié, avec de nombreux comptes rendus répétitifs de mise en œuvre technique supprimés lors de l’édition
- L’application actuelle est une version alpha qui n’a fait l’objet que de quelques playtests ; compte tenu de la nature du code généré par LLM, il peut rester des bugs non résolus et des aspérités, et des retours supplémentaires sont nécessaires
Visualisation de la conjecture de Gilbreath
- Après avoir rédigé un billet de blog sur un article consacré à la conjecture de Gilbreath, l’auteur a aussi demandé à l’agent un outil de visualisation à joindre à l’article et au billet
- Après quelques heures d’échanges, la visualisation de la conjecture de Gilbreath a été achevée
- La transcription du processus de création a également été publiée, et le développement s’est déroulé sans difficulté majeure
Utilisation comme compléments interactifs aux articles
- Pour de futurs articles, l’auteur envisage d’ajouter des visualisations interactives comme documents complémentaires
- Comme ces visualisations ne sont pas indispensables aux parties centrales des articles, le risque d’erreur est acceptable même si elles sont générées au moyen d’interactions guidées avec un agent LLM
1 commentaires
Avis sur Hacker News
La création de supports de visualisation avec des LLM a considérablement amélioré les cours d’informatique : https://htmx.org/essays/universities-and-ai/#demos-visualiza...
On dispose désormais de supports qu’on avait toujours souhaité avoir sans jamais trouver le temps de les créer, et avec l’aide de Claude, un simple ordinateur 8 bits destiné à compléter l’ordinateur pédagogique 16 bits existant a même été conçu en quelques jours : https://bdp.cs.montana.edu/
Cela me permet d’assimiler le contenu plus vite et de lire davantage d’articles qu’avant
Je me disais qu’il serait utile de pouvoir simuler davantage de ce qui était enseigné. L’enseignement consiste à décomposer un objet en composants et à examiner leurs interactions ; des simulations codées en vibe coding peuvent donc être un excellent outil
Si Terry Tao crée une application avec un agent de codage, alors il ne manque plus grand-chose pour qu’un médaillé Fields demande lui aussi à un LLM pourquoi son conteneur Docker ne démarre pas, comme nous
En particulier hors des domaines logiciels traditionnels, la demande latente de logiciels est pratiquement infinie. Même si les progrès des LLM s’arrêtaient aujourd’hui, il faudrait dix ans pour exploiter pleinement cette nouvelle capacité à écrire du logiciel, et cet exemple l’illustre bien
La conclusion selon laquelle « les supports interactifs créés avec des LLM ne sont pas essentiels au cœur de l’article ; le risque de générer ces visualisations via une interaction guidée avec un agent est donc acceptable » est équilibrée
Les LLM sont des outils : ils conviennent à certaines tâches et pas à d’autres, et il ne faut généralement pas croire leurs résultats tels quels
On fait confiance à un marteau pour les clous, pas pour les vis, sans pour autant dire qu’un marteau n’est généralement pas fiable. La difficulté avec l’IA, c’est qu’on ne sait pas encore toujours ce qui est un clou et ce qui est une vis
Plutôt que de dire simplement de ne pas faire confiance, il est plus utile d’expliquer qu’il faut consacrer plus de temps qu’avant à la planification, aux itérations et à la revue, apprendre les techniques, le contexte et l’usage des sous-agents, et s’entraîner d’abord sur des projets non opérationnels et à faible risque. L’objectif devrait être de bâtir la confiance en comprenant les bons workflows et les usages adaptés
Voir Terry Tao utiliser des agents de codage, c’est comme regarder un chef étoilé Michelin découvrir les plats préparés au micro-ondes et s’enthousiasmer sincèrement
José Andrés a lui aussi cité l’omelette au micro-ondes comme l’un des plats les plus difficiles à rater, la qualifiant de « meilleure omelette moelleuse de l’histoire de l’humanité » : https://www.tasteofhome.com/article/jose-andres-microwave-om...
Des maîtres comme Tao montrent que la technologie peut fabriquer ce gabarit, et les constructeurs de machines démontrent progressivement qu’ils peuvent fabriquer non seulement des gabarits pour coffrets à bijoux, mais aussi des gabarits pour fabriquer des machines à fabriquer des gabarits
Faire tourner d’anciens applets Java éducatifs en mathématiques et en physique a longtemps été un usage populaire de CheerpJ Applet Runner, qui exécute du bytecode Java dans le navigateur via WebAssembly
J’ai des sentiments partagés face au fait que des agents modernisent correctement ces contenus et résolvent ce problème. C’est clairement une bonne chose que les étudiants puissent interagir avec ces contenus de manière moderne et plus accessible, mais même si ce n’est pas important commercialement, l’usage éducatif a toujours été une source de fierté : https://chromewebstore.google.com/detail/cheerpj-applet-runn...
Les articles où un expert d’un domaine utilise l’IA pour créer quelque chose d’amusant dans son domaine sont toujours agréables à lire, mais cela ressemble toujours à un projet perso, pas à un travail sérieux
https://terrytao.wordpress.com/tag/artificial-intelligence/, https://academy.openai.com/public/blogs/terence-tao-ai-is-re...
Je suis âgé et, si nécessaire, je pourrais prendre ma retraite demain en serrant un peu la ceinture, mais je m’inquiète pour les jeunes développeurs, comme mon neveu de 25 ans, qui n’ont pas encore accumulé assez de patrimoine pour vivre sans travailler. Écrire du code directement deviendra un domaine de spécialité réservé à une toute petite minorité, comme calculer des racines carrées à la main ou fondre des caractères typographiques
L’usage généralisé de l’IA pour coder ne fait que commencer, et les modèles n’ont atteint que récemment un niveau permettant un travail sérieux. J’ai déjà vu des usages réels, mais il existe aussi beaucoup de raisons — politiques internes, code non public, secrets commerciaux — qui rendent difficile de publier sur un blog personnel des exemples d’utilisation dans du code de production
J’ai ri au passage disant qu’il avait « abandonné le projet parce que la complexité du code était devenue ingérable ». Il existe donc du code trop complexe pour être écrit même par Terry Tao
J’ai de grands espoirs que les LLM permettront à de nombreuses personnes extrêmement intelligentes dans leur domaine, mais qui n’avaient jamais réussi à entrer dans le codage, de participer au développement logiciel
Avec Claude, j’ai porté en JavaScript un jeu en applet Java d’allemand de lycée vieux de 30 ans, et j’ai même créé un faux historique Git : https://github.com/bradfitz/koffer#der-verloren-koffe
On peut aussi y jouer en ligne : https://bradfitz.github.io/koffer/js/
C’est chouette de voir du code d’il y a environ 30 ans reprendre vie
La première phrase maladroite de l’article est justement la preuve qu’elle n’a pas été écrite par une IA. Il s’agit de la phrase : « Depuis 1999, quand je créais en Java 1.0 des applets pour mes cours d’analyse complexe et d’algèbre linéaire afin de visualiser des objets mathématiques comme les structures en nid d’abeilles ou les ensembles de Besicovitch, je m’intéresse à la façon d’étudier et d’enseigner les mathématiques avec l’aide des machines »