Alte Mathematik-Apps mit modernen Coding-Agenten wiederbelebt und neue Apps entwickelt
(terrytao.wordpress.com)- Rund 24 nicht mehr unterstützte Mathematik-Applets in Java 1.0 wurden mit modernen AI Coding Agents nach JavaScript portiert, einschließlich Visualisierungstools, die damals nicht mehr umgesetzt werden konnten
- Die bestehenden Applets wurden in wenigen Stunden wiederhergestellt; dazu kamen grafische Verbesserungen wie die farbige Darstellung der Besicovitch-Menge sowie eine Neuimplementierung des 1999 mit Allen Knutson entwickelten Honeycomb-Applets
- Im Portierungsprozess verursachte der Agent nur einen kleinen Bug im Zusammenhang mit der Drag-Verarbeitung; zugleich fand er zwei unentdeckte Fehler im alten Code, sodass die gesamte Codequalität auf ähnlichem Niveau blieb
- Die 1999 wegen ihrer Komplexität aufgegebene Idee eines „Inkscape für den Minkowski-Raum“ wurde mit ein paar Stunden Vibe Coding als Alpha-Version einer Visualisierungs-App für die spezielle Relativitätstheorie umgesetzt; außerdem entstand eine neue Visualisierung zur Gilbreath-Vermutung
- Da unterstützende Visualisierungen nicht zum Kern mathematischer Beweise gehören, ist das Risiko durch Bugs in LLM-generiertem Code vergleichsweise gering, sodass sie künftig als interaktives Begleitmaterial für wissenschaftliche Arbeiten dienen könnten
Der Beginn und das Ende der Java-1.0-Applets
- Seit 1999 bestand Interesse daran, Mathematik mithilfe von Computern zu erforschen und zu lehren; dafür wurden mehrere Applets in Java 1.0 für Vorlesungen zu komplexer Analysis und linearer Algebra entwickelt
- Die Applets wurden nicht nur in der Lehre eingesetzt, sondern auch zur Visualisierung verschiedener mathematischer Objekte, darunter Honeycombs und die Besicovitch-Menge
- Zwar gab es gewisse Erfolge, doch das direkte Programmieren kostete viel Zeit, und als Webstandards diese Java-Version nicht mehr unterstützten, funktionierten die Applets nicht mehr
Portierung nach JavaScript mit AI
- Beim Umzug bestehender Webseiten und Blog-Daten in ein leichter wartbares Repository wurde moderne AI-Unterstützung genutzt
- Testweise wurde ein Agent gebeten, die alten Applets in eine heute unterstützte Sprache zu portieren; schließlich fiel die Wahl auf JavaScript
- Rund 24 bestehende Applets liefen innerhalb weniger Stunden wieder, teilweise mit verbesserter Grafik
- Das Besicovitch-Set-Applet wechselte von einer monochromen zu einer farbigen Darstellung
- Auch das 1999 gemeinsam mit Allen Knutson erstellte Honeycomb-Applet, dessen manuelle Implementierung besonders schwierig gewesen war, wurde wiederhergestellt
Neue Bugs und entdeckte Fehler im alten Code
- LLM-basierte Coding Agents können offensichtliche oder subtile Bugs erzeugen, doch bei dieser Portierung trat nur ein kleiner Bug neu auf
- In einem Applet zur komplexen Analysis kam es zu unerwünschtem Verhalten, wenn außerhalb des Hauptbereichs gezogen wurde
- Umgekehrt fand der Agent zwei unentdeckte Bugs im alten Code; zusammengenommen blieb die gesamte Codequalität auf ähnlichem Niveau
- Diese Applets sind keine Kernelemente mathematischer Beweise, sondern unterstützende Visualisierungshilfen, weshalb das mit Bugs verbundene Risiko vergleichsweise gering ist
Das 1999 aufgegebene Tool zur speziellen Relativitätstheorie
- Nachdem die Portierung bestehender Apps ohne größere Schwierigkeiten verlief, wurde auch die Entwicklung neuer Apps versucht
- 1999 gab es die Vorstellung eines Visualisierungstools für die spezielle Relativitätstheorie, ähnlich einem „Inkscape für den Minkowski-Raum“, wobei Inkscape damals noch nicht einmal veröffentlicht war
- Mit dem Schreiben von Java-Code wurde begonnen, doch die Komplexität erwies sich als zu groß und das Projekt wurde aufgegeben
- Nach einigen Stunden Vibe Coding mit einem AI-Agenten entstand ein Raumzeitdiagramm-Applet, das der damaligen Idee entspricht
- Eine Zusammenfassung des Entstehungsgesprächs wurde ebenfalls veröffentlicht; viele wiederholende technische Umsetzungsdetails wurden im Redaktionsprozess entfernt
- Die aktuelle App ist eine Alpha-Version, die bislang nur teilweise playgetestet wurde; aufgrund der Natur von LLM-generiertem Code könnten noch ungelöste Bugs und raue Stellen vorhanden sein, weshalb weiteres Feedback nötig ist
Visualisierung der Gilbreath-Vermutung
- Nach einem Blogbeitrag über eine Arbeit zur Gilbreath-Vermutung wurde der Agent auch um ein Visualisierungstool gebeten, das dem Paper und dem Beitrag beigefügt werden kann
- Nach einigen Stunden Gespräch entstand die Visualisierung der Gilbreath-Vermutung
- Auch ein Gesprächsprotokoll des Entstehungsprozesses wurde veröffentlicht; die Entwicklung verlief ohne größere Schwierigkeiten
Einsatz als interaktives Begleitmaterial für Papers
- Künftig wird erwogen, wissenschaftliche Arbeiten um interaktive Visualisierungen als Begleitmaterial zu ergänzen
- Da solche Visualisierungen nicht essenziell für den Kern eines Papers sind, erscheint das Fehlerrisiko auch dann vertretbar, wenn sie durch angeleitete Interaktion mit LLM-Agenten erzeugt werden
1 Kommentare
Hacker-News-Kommentare
Das Erstellen von Visualisierungsmaterial mit LLMs hat den Informatikunterricht deutlich verbessert: https://htmx.org/essays/universities-and-ai/#demos-visualiza...
Materialien, die ich mir immer gewünscht hatte, aber aus Zeitmangel nie erstellen konnte, stehen jetzt zur Verfügung; mit Claudes Hilfe wurde außerdem in wenigen Tagen ein einfacher 8-Bit-Computer entworfen, der den bestehenden 16-Bit-Lehrcomputer ergänzt: https://bdp.cs.montana.edu/
Dadurch kann ich die Inhalte schneller aufnehmen und mehr Paper lesen als früher
Ich dachte damals, es wäre schön, mehr von dem Unterrichtsstoff simulieren zu können. Bildung besteht darin, einen Gegenstand in seine Bestandteile zu zerlegen und ihre Wechselwirkungen zu betrachten; daher können per Vibe Coding erstellte Simulationen ein hervorragendes Werkzeug sein
Wenn Terry Tao mit einem Coding Agent eine App baut, sind wir nur noch einen Schritt davon entfernt, dass auch ein Fields-Medaillist wie wir ein LLM fragt, warum ein Docker-Container nicht startet
Besonders außerhalb der traditionellen Softwarebranche ist die potenzielle Nachfrage nach Software praktisch unbegrenzt. Selbst wenn die Entwicklung von LLMs heute stehen bliebe, würde es zehn Jahre dauern, all die neu entstandene Fähigkeit zum Schreiben von Software auszuschöpfen; dieses Beispiel zeigt das sehr gut
Die Schlussfolgerung, dass „mit LLMs erstellte interaktive Begleitmaterialien nicht zentral für den Kern eines Papers sind, sodass das Risiko, solche Visualisierungen durch geführte Interaktion mit einem Agenten zu erzeugen, vertretbar ist“, wirkt ausgewogen
LLMs sind Werkzeuge: Es gibt Aufgaben, für die sie gut passen, und andere, für die sie nicht passen; im Allgemeinen sollte man ihre Ergebnisse nicht einfach ungeprüft übernehmen
Einen Hammer benutzt man vertrauensvoll für Nägel, aber nicht für Schrauben; trotzdem würde man nicht sagen, dass ein Hammer generell nicht vertrauenswürdig ist. Die Schwierigkeit bei AI besteht darin, dass wir noch nicht wissen, was Nagel und was Schraube ist
Statt einfach zu sagen, man solle ihr nicht vertrauen, wäre es hilfreicher zu erklären, dass man mehr Zeit als früher in Planung, Iteration und Review investieren sollte, sich mit Technik, Kontext und der Nutzung von Sub-Agenten vertraut machen und zuerst an nicht produktiven, risikoarmen Projekten üben sollte. Ziel sollte sein, Vertrauen aufzubauen, indem man gute Workflows und passende Anwendungsfälle versteht
Zu sehen, wie Terry Tao Coding Agents nutzt, wirkt wie eine Szene, in der ein Michelin-Sternekoch Fertiggerichte aus der Mikrowelle entdeckt und sich ehrlich dafür begeistert.
José Andrés bezeichnete ein Mikrowellen-Omelett ebenfalls als das am schwersten zu misslingende Gericht und nannte es „das fluffigste Omelett in der Geschichte der Menschheit“: https://www.tasteofhome.com/article/jose-andres-microwave-om...
Meister wie Tao zeigen, dass Technik solche Vorrichtungen herstellen kann, und Maschinenbauer belegen Schritt für Schritt, dass man nicht nur Vorrichtungen für Schmuckkästchen bauen kann, sondern sogar Vorrichtungen zum Bau von Maschinen, die Vorrichtungen herstellen.
Alte Java-Applets für den Unterricht in Mathematik und Physik auszuführen, war lange ein beliebter Einsatzzweck des CheerpJ Applet Runner, der Java-Bytecode per WebAssembly im Browser ausführt.
Ich habe gemischte Gefühle dabei, wenn Agents dieses Problem durch eine ordentliche Modernisierung lösen. Es ist eindeutig gut, dass Studierende auf moderne und zugänglichere Weise mit den Inhalten interagieren können, aber der Einsatz im Bildungsbereich war immer eine Quelle des Stolzes, auch wenn er kommerziell nicht wichtig war: https://chromewebstore.google.com/detail/cheerpj-applet-runn...
Texte, in denen Fachleute mit AI etwas Unterhaltsames aus ihrem eigenen Gebiet bauen, machen immer Spaß, aber es wirkt stets wie ein Hobbyprojekt und nicht wie ernsthafte Arbeit.
https://terrytao.wordpress.com/tag/artificial-intelligence/, https://academy.openai.com/public/blogs/terence-tao-ai-is-re...
Ich bin älter und könnte, falls nötig, morgen knapp, aber irgendwie in Rente gehen. Aber ich mache mir Sorgen um junge Entwickler wie meinen 25-jährigen Neffen, die noch nicht genug Vermögen aufgebaut haben, um ohne Arbeit auszukommen. Code direkt zu schreiben wird zu einem Spezialgebiet werden, das nur noch eine winzige Minderheit betreibt, ähnlich wie das Berechnen von Quadratwurzeln von Hand oder das Gießen von Lettern.
Die breite Nutzung von AI fürs Coding hat gerade erst begonnen, und die Modelle haben erst kürzlich ein Niveau erreicht, auf dem ernsthafte Arbeit möglich ist. Ich habe bereits reale Einsätze gesehen, aber wegen Organisationsrichtlinien, nicht öffentlichem Code und Geschäftsgeheimnissen gibt es viele Gründe, warum man Einsatz in Produktionscode nicht in einem persönlichen Blog offenlegen kann.
Ich musste bei der Stelle lachen, an der er sagte, er habe das Projekt aufgegeben, weil „die Code-Komplexität unbeherrschbar groß wurde“. Es gibt also Code, der selbst für Terry Tao zu komplex ist, um ihn zu schreiben.
Ich habe große Hoffnung, dass LLMs viele Menschen in die Softwareentwicklung bringen werden, die in bestimmten Bereichen extrem klug sind, aber bisher keinen Zugang zum Coding gefunden haben.
Ich habe mit Claude ein 30 Jahre altes Java-Applet-Spiel aus dem Deutschunterricht der Highschool nach JavaScript portiert und sogar eine gefälschte Git-Historie erstellt: https://github.com/bradfitz/koffer#der-verloren-koffe
Es läuft auch online: https://bradfitz.github.io/koffer/js/
Schön zu sehen, wie etwa 30 Jahre alter Code wieder zum Leben erwacht.
Gerade der unbeholfene erste Satz des Artikels ist der Beweis, dass er nicht von AI geschrieben wurde. Gemeint ist der Satz: „Seit ich 1999 mit Java 1.0 Applets für Kurse in komplexer Analysis und linearer Algebra erstellte, um mathematische Objekte wie Wabenstrukturen oder Besicovitch-Mengen zu visualisieren, interessiere ich mich dafür, wie Maschinen beim Erforschen und Lehren von Mathematik helfen können.“