Automatisches Programmieren
(antirez.com)- antirez definiert den Prozess des softwaregestützten Schreibens mit AI-Unterstützung als „Automatic Programming“ und prognostiziert, dass dies bald zum Standard beim Schreiben von Software wird
- Selbst bei Verwendung desselben LLM unterscheiden sich die Ergebnisse stark je nach menschlicher Intuition, Entwurf und fortlaufender Kurskorrektur
- Vibe Coding ist ein Ansatz, bei dem man AI ohne großes Verständnis machen lässt, während automatisches Programmieren von einer klaren Vision und Kontrolle durch den Entwickler ausgeht
- Auch von AI erzeugter Code basiert auf von Menschen angesammelten Vortrainingsdaten und Urteilsvermögen, und die Eigentümerschaft am Ergebnis liegt beim Entwickler
- Programmierung wird zunehmend automatisiert, aber Ideen und Vision bleiben weiterhin der Bereich des Menschen
Definition des Konzepts Automatic Programming
- Der Prozess, mit AI-Unterstützung Software zu schreiben, wird automatisches Programmieren (Automatic Programming) genannt
- Dieser Ansatz wird bald zum Standardprozess beim Schreiben von Software werden
Unterschied zu Vibe Coding
- Vibe Coding ist ein Ansatz, bei dem Software mit AI erzeugt wird, ohne überhaupt am Prozess teilzunehmen
- Wenn man das Gewünschte nur in sehr allgemeinen Begriffen beschreibt, erzeugt das LLM auf Grundlage der Trainingsdaten und des spezifischen Samplings in dieser Ausführung die zuerst naheliegende Idee, den zuerst naheliegenden Entwurf oder den zuerst naheliegenden Code
- Der Vibe Coder meldet bestenfalls, dass etwas nicht funktioniert oder nicht den Erwartungen entspricht
- Automatisches Programmieren strebt hohe Qualität an und folgt strikt der Software-Vision des Produzenten
- Diese Vision ist mehrschichtig: von der genauen Anweisung, wie eine bestimmte Aufgabe zu erledigen ist, bis hin zur direkten Vorgabe an die AI, wie eine bestimmte Funktion zu schreiben ist
- Auch was getan werden soll ist ein zentrales Element
Bedeutung des menschlichen Faktors
- Selbst beim selben LLM unterscheiden sich die Ergebnisse stark je nach Intuition, Entwurf, fortlaufender Kurskorrektur und Software-Idee des Menschen, der den Prozess führt
- Die Formulierung „Claude hat diese Software für mich per Vibe Coding erstellt“ ist nicht angemessen
- Wenn man weiß, was vor sich geht, und tatsächlich den Prozess zur Herstellung echter Software steuert, dann ist es die Software, die man selbst produziert
Perspektive auf Code-Eigentum
- Vortrainingsdaten sind nicht das Einzige, was ein LLM lernt (RL hat ebenfalls großes Gewicht), aber sie wurden von Menschen erzeugt
- Daher wird nichts anderes zweckentfremdet
- Man kann von AI erzeugten Code als „unseren“ bezeichnen und hat das Recht dazu
- Vortraining ist ein kollektives Geschenk, das vielen Einzelnen ermöglicht, Dinge zu tun, die sie allein niemals tun könnten
- Es ist ähnlich, als wären wir auf gewisse Weise mit einem kollektiven Geist verbunden
- Mit automatischem Programmieren erzeugter Code ist dein Code, dein Output, dein Produkt, und man darf stolz darauf sein
Der Fall Redis
- In Redis gibt es nicht besonders viele technische Neuheiten
- In der Anfangsphase war es letztlich nur eine Kombination aus grundlegenden Datenstrukturen und Netzwerk-Code, die jeder fähige Systemprogrammierer hätte schreiben können
- Trotzdem wurde daraus sehr nützliche Software, und zwar wegen der darin enthaltenen Ideen und Vision
Fazit
- Programmierung ist jetzt automatisiert, aber Vision ist noch nicht automatisiert
1 Kommentare
Hacker-News-Kommentare
Ich bin seit über 30 Jahren in der Branche und in letzter Zeit tief in spezifikationsgetriebene Entwicklung (spec-driven development) eingetaucht
Mit Claude Code und GPT-5.2 (CoPilot) erstelle ich Anforderungen und verfeinere die Spezifikation durch mehrfaches Self-Review
Aus der fertigen Spezifikation erstellt Claude Code dann einen Implementierungsplan und den Code, sodass die Hauptfunktionen in 20 Minuten fertig sind
Es erinnert mich an das Waterfall-Modell aus meiner Zeit in der Rüstungsindustrie, aber dank AI fühlt sich dieser deutlich schnellere und sauberere Ansatz wie eine „augmented cascade“ an
Agile war eine Reaktion von Unternehmen, bei denen diese Bedingungen nicht möglich waren und die zum Überleben schnell Produkte ausliefern mussten
Ich frage mich, ob es sehenswerte öffentliche Beispiele für Spezifikationen gibt. So wie frühere Generationen den Quake-Code von John Carmack bewundert haben, wird die nächste Generation wohl großartige Spezifikationen verehren
Menschen können nicht jede Komplexität und jeden Sonderfall vorhersehen. Sobald man etwas tatsächlich baut, taucht zwangsläufig ein „Daran habe ich nicht gedacht“ auf
Wenn die Anforderungen bereits klar sind, ist es nicht unbedingt nötig
Der Unterschied ist nur, dass man statt nachgelagerter Teams ein LLM einsetzt
Passende Referenzen: Design by Contract (Goodreads), Original-PDF
Der Formulierung „Pre-Training ist ein kollektives Geschenk der Menschheit“ stimme ich nicht zu
Wenn etwas gestohlen wurde, ist es kein Geschenk
Selbst wenn ein LLM den Code erzeugt hat, ist es mein Code, solange ich dafür Verantwortung übernehme und ihn pflege
Das Problem entsteht, wenn Autorinnen oder Autoren Verantwortung vermeiden
Nachdem ich Claude Code und Opus 4.5 verwendet habe, bin ich zu einem ähnlichen Schluss gekommen
Ich nenne das „Zen Coding“. Man behandelt die Codebasis wie einen Zen-Garten, entwirft die Spezifikation mit großer Sorgfalt und prüft jede Zeile
AI sollte nicht als Designer, sondern als Werkzeug fungieren
Wer eine klare Spezifikation hat, bekommt von AI deutlich hochwertigeren Code
Vibe coding ist intuitives Experimentieren, Zen coding ist die Übung eines Handwerksmeisters
Wenn ich Formulierungen höre wie „Claude hat es geliefert“, habe ich sofort den Eindruck, dass der Code noch nach Entwurf aussieht
Man sollte weder dem Werkzeug die Schuld geben noch sich entschuldigen, sondern einfach das Ergebnis besser machen
Die Formulierung „Pre-Training ist ein Geschenk der Menschheit“ ist für mich unangenehm
Viele Open-Source-Entwickler wollten nicht, dass ihr Code zum Training von LLMs verwendet wird
In manchen von LLMs erzeugten Codes habe ich Teile gesehen, die Code aus Büchern oder Blogs fast wortwörtlich kopierten
Ich finde, zumindest eine Quellenangabe wäre das Mindeste
Wenn ein LLM mit GPL-Code trainiert wurde, lässt sich argumentieren, dass auch das Ergebnis unter GPL veröffentlicht werden müsste
Kafka etwa wollte, dass seine Manuskripte verbrannt werden, und heute gehören sie zum literarischen Kanon
„Automatic programming“ der 1950er und 1960er Jahre meinte in Wirklichkeit Compiler
4GLs der 1980er waren domänenspezifische Hochsprachen, und heutige LLMs befinden sich auf der Stufe, aus natürlichsprachigen Spezifikationen Entwürfe zu erzeugen
Letztlich müssen Menschen die Qualität weiterhin durch iterative Überarbeitung und Designänderungen steigern
Vielleicht erleben wir gerade die letzte Generation von artisanal coders
Handwerker wie Antirez arbeiten mit Konzepten jenseits normaler menschlicher Grenzen und schaffen Software wie Redis, die zugleich schlicht und schön ist
AI kann Code in einer Geschwindigkeit erzeugen, die Menschen nicht erreichen, aber sie ist nicht Pinsel und Leinwand
Die neue Generation wird eine völlig andere Art von Handwerkern hervorbringen
Auch ich habe Angst, aber ich nehme diese neuen Werkzeuge an und experimentiere mit einem neuen Zeitalter des Handwerks
Hinzu kommt nur noch die Fähigkeit, gut mit AI umzugehen; vorhandenes Wissen wird dadurch nicht überflüssig
Beeindruckend fand ich, dass Antirez in seinem Text den Unterschied zwischen „vibe coding“ und „automatic programming“ klar getrennt hat
Das ist vergleichbar mit dem Wandel von einer Zeit, in der Architekten Pläne von Hand zeichneten, hin zu BIM und CAD
Im AI-Zeitalter coden Entwickler nicht weniger, sondern der Fokus des Werts hat sich verschoben
„vibe coding vs automatic coding“ ist keine Dichotomie, sondern ein Spektrum
Selbst innerhalb eines Projekts kann man mehrere Stufen dieses Ansatzes kombinieren
Entscheidend ist, Werkzeuge kritisch zu nutzen und das Ergebnis laufend zu verbessern
Manche nennen das „spec strumming“