- Programmieren ist ein kreativer Akt des präzisen Ausarbeitens mehrdeutiger Spezifikationen, und AI beschleunigt diesen Prozess, indem sie englische Spezifikationen in Code umwandelt
- „Vibe Coding“ ermöglicht eine intuitive Art der Entwicklung, kann aber Probleme mit Komplexität und Bugs durch undichte Abstraktionen nicht vermeiden
- Menschen nutzen Abstraktion und Kompression, um Komplexität zu bewältigen; genau darin liegt der wesentliche Wert des Programmierens
- Im AGI-Zeitalter wird AI bessere Abstraktionen unterstützen und damit die Schaffung ausgefeilter und kunstvoller Software ermöglichen
- Entgegen der Vorstellung „Code ist tot“ wird AI nicht als Ende des Codings, sondern als Werkzeug für einen neuen Anfang dargestellt
Der Tod des Codes ist eine übertriebene Behauptung
- Es wird auf die Mehrdeutigkeit englischer Spezifikationen und die Grenzen von Präzision hingewiesen; Programmieren ist wie Schreiben ein Vorgang, bei dem die Genauigkeit durch Wiederholung schrittweise erhöht wird
- Mit einem Zitat von Bertrand Russell wird betont, dass „alles vage ist, bis wir versuchen, es präzise zu machen“
- AI kann auf Englisch geschriebene Spezifikationen schnell in ausführbaren Code umwandeln, sodass Nutzer das gewünschte Ergebnis schrittweise konkretisieren können
- „Vibe Coding“ ist eine Methode, bei der man auf von AI erzeugte Resultate reagiert und eher intuitiv entwickelt, doch das kann die Illusion exakter Abstraktion erzeugen
- Wenn Abstraktionen undicht werden, entstehen unerwartete Bugs; mit wachsender Größe wird das Problem gravierender
- Vorgestellt wird Dan Shippers Fall, in dem ein per „vibe coding“ gebauter kollaborativer Texteditor populär wurde, dann aber wegen Komplexitätsproblemen ausfiel
- „Live-Zusammenarbeit“ wirkt intuitiv einfach, ist in Wirklichkeit aber ein sehr schwieriges Problem und zeigt das Wesen von Komplexität
Abstraktion und die Kontrolle von Komplexität
- Menschen können nur etwa 7±2 Elemente gleichzeitig erfassen; der einzige Weg, Komplexität zu bewältigen, ist „Kompression“, also Abstraktion
- Mit einem Zitat von Edsger Dijkstra wird hervorgehoben, dass „der Zweck von Abstraktion nicht Unschärfe, sondern Präzision auf einer neuen Bedeutungsebene ist“
- Als Beispiel wird Sophie Alperts Vereinfachung eines komplexen Slack-Diagramms für Benachrichtigungsflüsse genannt
- Der Kern des Programmierens ist die Schaffung besserer Abstraktionen zur Beherrschung von Komplexität; ihre Schönheit zeigt sich etwa in der funktional-reaktiven Programmierung
- Selbst inhärent komplexe Probleme wie kollaborative Texteditoren lassen sich mit Abstraktionswerkzeugen wie ReactJS oder TailwindCSS schrittweise bezwingen
Das AGI-Zeitalter und die Rolle des Codes
- Da AI immer schneller und günstiger wird, wird sie letztlich Intelligenz erreichen, die von menschlicher nicht zu unterscheiden ist (AGI)
- Im AGI-Zeitalter wird man voraussichtlich so leistungsfähige Intelligenz nutzen können, als stünden jedem günstig „100 Genies auf Karpathy-Niveau“ zur Verfügung
- Doch das dient nicht dazu, noch mehr schlechten Code zu produzieren, sondern als Werkzeug für bessere Abstraktionen und ein tieferes Verständnis von Komplexität
- Code ist nicht bloß ein Mittel zur Softwareentwicklung, sondern selbst ein bedeutendes künstlerisches Werk; gut geschriebener Code wird mit Poesie verglichen
- So wie es kein „vibe writing“ gibt, kann auch Coding nicht durch bloß intuitive Handlungen ersetzt werden
- Wenn AGI kommt, werden Maschinen nicht-minderwertigen (
non-slop) Code schreiben können, was ein glorreicher Fortschritt für die Menschheit wäre
AI und bessere Codequalität
- Gegenwärtig erzeugt AI noch immer unvollkommenen Code, doch Entwickler setzen sie bereits mit diesem Bewusstsein ein
- Wie Simon Willison argumentiert, sollte AI als Werkzeug zum Schreiben besseren Codes genutzt werden
- Sobald AGI erscheint, wird sie zuerst auf die schwierigsten Abstraktionsprobleme angesetzt werden und komplexe Systeme wie Bibliotheken für kollaborative Editoren verbessern
- Vorgestellt wird ein Fall, in dem mit Opus 4.6 ein Full-Stack-React-Framework (
vtrr) für Val Town entwickelt wurde
- Dabei wurden offene Probleme rund um React Router 7 auf einmal gelöst, und die Komplexität wurde elegant in einer 50-zeiligen Demo mit nur einer Datei behandelt
- Das zeigt, dass ausgefeilte Code-Schöpfung durch Zusammenarbeit von Mensch und AI möglich ist
Die Zukunft des Codes und der Wert des Formalismus
- Viele Menschen glauben, „Code ist tot“, doch das ist ein Fehlschluss, vergleichbar mit der Behauptung, die Erfindung des Buchdrucks bedeute das Ende von Geschichten
- AI bedeutet nicht das Ende des Codings, sondern einen neuen Anfang des Codings
- Mit Zitaten von Edsger Dijkstra, Tony Hoare und Charles Babbage wird betont, dass formales Denken und die komprimierende Kraft von Symbolen das menschliche Denken erweitern
- Dijkstra bemerkt, dass die Verwendung formaler Sprachen nicht als Last, sondern als Privileg gesehen werden sollte
- Hoare stellt zwei Ansätze gegenüber: „ein einfaches Design, das offensichtlich keine Mängel hat“ und „ein komplexes Design, bei dem das Fehlen von Mängeln nicht offensichtlich ist“
- Babbage weist darauf hin, dass die Kompression von Symbolen eine Kraft ist, die Denken vorantreibt
- Zusammenfassend lässt sich sagen: Code ist nicht tot, sondern wird im AI-Zeitalter zu einem noch mächtigeren kreativen Werkzeug
1 Kommentare
Hacker-News-Kommentare
Chris Lattner hat einen mit Claude AI geschriebenen Compiler begutachtet und meinte, daran sei nichts wirklich Innovatives
AI neigt dazu, vorhandenes Wissen im Mittel neu zu kombinieren, kann aber kritisches Denken oder neue Paradigmen nicht von selbst hervorbringen
Menschen können außerhalb bestehender Übereinkünfte denken, während AI eine Tendenz hat, zu diesem Konsens zurückzukehren
Letztlich ist AI ein Konformist (conformist), und genau das ist zugleich Stärke und Schwäche
Zugehöriger Artikel
Statt stundenlang Dokumentation zu lesen, um komplexe Authentifizierungs-Setups wie OAuth oder SAML zu verstehen, erstellt mir ein LLM schnell funktionsfähigen Integrationscode
Ich nutze es außerdem wie Rubber-Duck-Debugging, um im Gespräch mit der AI meine Gedanken zu ordnen
Solche Gespräche haben eine Komplexität, die für Menschen ohne echte Entwicklungserfahrung schwer zu erreichen ist
Die eigentliche Sorge ist, ob AI die Nachfrage senkt und die Branche dadurch zu einem Überangebot führt
Wenn weiterhin neue geschäftliche Probleme entstehen, wird AI als Werkzeug helfen, andernfalls werden Jobs auch ohne AI weniger werden
Neuronale Netze führen im Wesentlichen Interpolation aus, nicht Extrapolation
Das heißt: Innerhalb des gelernten Bereichs sind sie ausgefeilt, außerhalb davon unvorhersehbar
Der Wikipedia-Artikel und das SolidGoldMagikarp-Beispiel zeigen das gut
Claudes Ziel war nicht Innovation, sondern zu zeigen: „Kann AI einen Compiler bauen?“
Wenn man Fälle wie AlphaDev oder AlphaEvolve betrachtet, ist es gut möglich, dass AI durch exploratives Lernen und Wissenskombination tatsächlich Innovation hervorbringen kann
In den meisten Fällen wollen wir ein vorhersehbares Werkzeug und kein instabiles Wesen, das selbstständig weiterlernt
AI kann widersprüchliche Anforderungen ordnen und eine konsistente Implementierung erzeugen
Sie kann zum Beispiel auch auf unmögliche Anfragen wie „Zeichne sieben rote Linien mit blauer Tinte“ logisch reagieren
Dass Claude tatsächlich antwortete, „Das ist unmöglich, also wäre es die ehrliche Antwort, 0 Linien zu zeichnen“, ist ein Beispiel für kritisches Denken
Auf die Frage „Kann AI neue Technologien erschaffen?“ bin ich skeptisch
Da AI von vorhandenen Daten abhängt, besteht bei neuen Sprachen oder Frameworks mit wenig Trainingsmaterial das Risiko einer verlangsamten Weiterentwicklung
AI-Coding könnte im Gegenteil helfen, das „Rad neu zu erfinden“ zu reduzieren und aus dem NIH-Syndrom herauszukommen
Selbst mit kaum vorhandenen Trainingsdaten können sie Dokumentation lesen, Code schreiben und neue Versuche durchführen
Man sollte die Möglichkeit offenlassen, dass AI eines Tages ebenfalls kreative technische Synthese leisten kann
Am Ende könnten wir in einer Zeit landen, in der Entwickler dafür bezahlen müssen, in die Trainingsdaten der AI aufgenommen zu werden
Plattformen wie skills.sh bieten zum Beispiel ein Skill-System, um AI neue Frameworks beizubringen
Schon mit Dokumentation und Beispielcode kann die AI das betreffende Framework sofort verwenden
Ich habe gegenüber Code widersprüchliche Gefühle
Im Beruf ist Code Schuld bzw. Last, gleichzeitig aber auch Freude als Hobby
Es fühlt sich an, als rücke eine Welt näher, in der man wie beim Computer aus Star Trek einfach etwas sagt und es erledigt wird
Ein großer Teil der intellektuellen Ressourcen der Gesellschaft fließt in Ad-Tech oder die Überwachungsindustrie
Wenn AI das Programmieren ersetzt, könnte das ein Anlass für eine Umverteilung von Talenten sein
Ich arbeite an einem CRDT für Baumstrukturen, das Verschieben, Löschen und Sortieren ohne Tombstones ermöglicht
Claude Code schreibt zwar guten Code, wollte aber ständig Tombstones hinzufügen, sodass ich es mit logischen Beweisen überzeugen musste
Es scheint, dass AI ein solch feines strukturelles Verständnis noch nicht vollständig besitzt
Immer wenn neue Technologien auftauchen, durchlaufen Menschen eine Phase überzogener Erwartungen und Experimente
Auf diesem Weg lernen wir die Grenzen der Technologie kennen
Das Versprechen des agentischen Programmierens klingt großartig, aber am Ende wird jeder durch Versuch und Irrtum die Realität kennenlernen
Ich sehe das weniger als „Code ist tot“, sondern eher so, dass Menschen die Abstraktionsebene um eine Stufe anheben
Heute schreibt man eine Spezifikation auf Englisch und die AI erzeugt den Code
Wenn jedoch vollständige Spezifität nötig ist, bleibt Code weiterhin nützlicher
Wie bei der Bildbearbeitung: Wenn präzise Kontrolle nötig ist, macht man es besser selbst, aber in den meisten Fällen reicht es, die AI machen zu lassen
Mit der Zeit wird AI meiner Meinung nach stabilen und sicheren Code besser schreiben als Menschen
Wie Simon Willison sagte, liegt der wahre Wert von vibe coding nicht in „schneller“, sondern darin, besseren Code zu erzeugen
Man kann Prototypen mit verschiedenen Entwurfsmodellen erstellen und sie anhand von Lesbarkeit, Zuverlässigkeit und Fehlertoleranz iterativ verbessern
In Code-Reviews kann man inzwischen sagen „Lass uns diesen Teil so ändern“, und die AI setzt es sofort um
Viele Kolleginnen und Kollegen erwarten jedoch nur eine „Welt, in der Code verschwindet“
Vor Kurzem gab es einen Artikel darüber, dass Donald Knuth eine AI um einen Beweis bat und sie einen zuvor unbekannten Beweis gefunden habe
Wahrscheinlich war das aber weniger eine neue Entdeckung als vielmehr das Wiederfinden vergessenen Materials
Genau das macht LLMs zugleich zu mächtigen Forschungswerkzeugen und lässt sie so erscheinen, als seien sie kreativ
Mit dem Dragon Book kann man in wenigen Monaten etwas Funktionsfähiges bauen und dabei alle Prinzipien verstehen
Ich denke, Programmiersprachen sind ein Mittel, menschliche Intention kompakt auszudrücken
Manchmal kann natürliche Sprache diese Intention jedoch präziser und dichter vermitteln
Gute Abstraktion verringert diese Lücke, und DSLs oder Sprachen aus der ML-/Lisp-Familie sind Beispiele dafür
So kann etwa Code selbst die Intention am besten einfangen, wie im Electric-Clojure-Tutorial
Letztlich gilt wie bei Wittgenstein: „Ein verschwommenes Bild kann manchmal genau das sein, was wir brauchen“