Im Zeitalter der rasanten Fortschritte im Bereich der Künstlichen Intelligenz stellt sich eine grundlegende Frage: Können große Sprachmodelle (Large Language Models, kurz LLMs) menschliche Programmierer ersetzen? Diese Diskussion gewinnt nicht nur in technischen Kreisen an Bedeutung, sondern betrifft auch die Art und Weise, wie wir Programmieren, Softwareentwicklung und das menschliche Denken verstehen. Ein erfrischender und tiefgründiger Einblick in das Wesen des Programmierens bietet der dänische Informatiker Peter Naur mit seinem Konzept „Programmieren als Theoriebildung“. Die heute dominierenden KI-Modelle erzeugen Text, simulieren Antworten und können beeindruckende Programmierbeispiele liefern. Dennoch zeigt ein genauer Blick auf Naurs Theorie, warum diese Systeme das kreative, intelligente und reflektierende Handeln menschlicher Programmierer nicht ersetzen können. Peter Naur veröffentlichte in den 1980er Jahren einen wegweisenden Essay, der die übliche Vorstellung vom Programmieren herausfordert.
Er beschreibt Programmieren nicht als reine Produktion von Quellcode, sondern als einen Prozess der Theoriebildung. Hierbei geht es um den Aufbau eines inneren Wissensnetzwerks, das notwendig ist, um ein komplexes System zu verstehen, zu gestalten und weiterzuentwickeln. In Naurs Worten bedeutet Programmieren, mehr als nur Code zu schreiben – es ist das Bestreben, ein theoretisches Modell zu entwickeln, das das Verhalten einer Software beschreibt und erklärt. Ohne dieses Verständnis bleibt der Programmierer auf das bloße Manipulieren von Zeichenketten beschränkt, anstelle ein sinnhaftes und nachhaltiges System zu erschaffen. Diese Sichtweise steht im starken Gegensatz zur gängigen Auffassung, die sorglos Programmieren als eine Art industriellen Produktionsprozess betrachtet.
Dabei wird häufig angenommen, dass Programmierer austauschbare Komponenten innerhalb eines größeren technischen Workflows sind, deren Hauptaufgabe darin besteht, möglichst fehlerfreie und funktionierende Quellcode-Schnipsel zu produzieren. Naur warnt, dass dieses Missverständnis zu erheblichen Problemen führt, nicht nur in der Softwarequalität, sondern auch im Umgang mit der Komplexität von Softwareprojekten. Der Aufbau und die Pflege eines Programms erfordern eine fortlaufende Reflexion und das ständige Anpassen von Theorien darüber, wie bestimmte Module zusammenwirken und warum sie ursprünglich so gestaltet wurden. Diese Denkmodelle sind essenziell, um Fehler zu beheben, neue Funktionalitäten einzufügen und das Zusammenspiel verschiedener Komponenten zu harmonisieren. Ein Schlüsselkonzept, das Naur für sein Theoriebildungskonzept heranzieht, ist die philosophische Definition von „Theorie“ durch Gilbert Ryle.
Ryle beschreibt in seinem Werk „The Concept of Mind“ eine Theorie nicht als bloße Sammlung von Texten oder Aussagen, sondern als ein geistiges Konstrukt, das durch aktive Arbeit und Erfahrung entsteht. Die Analogie eines Bauern, der einen Pfad anlegt, erklärt dies treffend: Der Pfad ist das Resultat harter Arbeit, die der einfachen Begehung dient. Ebenso ist die Theorie das Ergebnis intensiven Nachdenkens und Experimentierens, die dem Programmierer ermöglichen, „leicht und sicher“ durch das Wissen seiner Software zu navigieren. LLMs wie GPT-Modelle sind beeindruckende Werkzeuge, die auf riesigen Datensätzen trainiert wurden, um Texte zu generieren, die menschlicher Sprachproduktion ähneln. Sie können erstaunlich kohärente Codeschnipsel erstellen, Fehler in bestehendem Code erkennen und Vorschläge zur Verbesserung geben.
Doch Naur würde argumentieren, dass das, was LLMs erzeugen, keine Theorie ist, sondern lediglich der Textoutput vergangener menschlicher Arbeit. Sie simulieren das Aussehen von Theoriebildung, ohne diese tatsächlich leisten zu können. Während ein menschlicher Programmierer durch eigene Erfahrungen, Problemlösungen und Modellierungen ein inneres Verständnis entwickelt, sind LLMs darauf beschränkt, Muster in Daten zu erkennen und diese nachzubilden. Sie besitzen kein wirkliches Verständnis, keine eigene Intuition oder die Fähigkeit, neue Pfade zu erschaffen, auf denen noch nie zuvor gegangen wurde. Dieses wichtige Unterscheidungsmerkmal führt zu der Einsicht, dass LLMs nicht autonom Theorien über komplexe Programme schaffen können.
Sie können keine wirklich neuen Konzepte generieren, die über ihre Trainingsdaten hinausgehen. Insbesondere bei großen und langfristig komplexen Softwareprojekten ist die Pflege und Weiterentwicklung ohne das vorhandene Theoriewissen, das ausschließlich durch die intensive menschliche Beschäftigung mit dem Programm wächst, fast unmöglich. Probleme wie inkonsistente Anforderungen, veraltete Dokumentationen oder fehlende Absichten hinter bestimmten Designentscheidungen lassen sich nicht durch reine Textmustererkennung lösen. Auch wenn KI-Modelle auf den ersten Blick als „Programmierassistenten“ fungieren können, bleibt die Frage der Verantwortung und des Verständnisses beim Menschen. Naur betont, dass die Fähigkeit, ein Programm nicht nur zu nutzen, sondern auch zu erklären, zu diskutieren und weiter zu entwickeln, zentral für die Rolle eines Programmierers ist.
Diese kommunikative Kompetenz und tiefere Einsicht geht weit über die reine Fähigkeit hinaus, Quellcode zu schreiben oder zu lesen. Die fortgesetzte Anpassung und Korrektur großer Programme sind auf den engen und kontinuierlichen Austausch innerhalb von Teams angewiesen, die das betreffende Wissen besitzen und weitergeben. Ein weiterer Aspekt, den Naur hervorhebt, ist das Missverständnis der Natur von Programmieren im Vergleich zu anderen kreativen Ausdrucksformen wie der Poesie. Beide Tätigkeiten erschaffen artefaktartige Produkte – Quellcode beziehungsweise Gedichte. Doch der wahre Wert liegt nicht im fertigen Text allein, sondern im Wissen, in der Erfahrung und in der Lebenswelt, die zu deren Entstehung geführt haben.
Für das Programmieren heißt das, dass sich eine tiefgehende Theoriebildung und ein Verständnis der Zusammenhänge nicht in Zeilen von Quellcode oder Kommentaren abbilden lassen. Sie sind mentale Strukturen, die nur durch den aktiven Prozess des Entwerfens, Testens und Reflektierens entstehen können. Diese Perspektive zeigt auch die Grenzen automatisierter Programmierwerkzeuge auf. Obwohl LLMs und andere KI-Systeme in der Lage sind, Codefragmente zu generieren oder konzeptionelle Vorschläge zu unterbreiten, sind sie nicht in der Lage, die komplexen sozialen und kognitiven Prozesse der Softwareentwicklung eigenständig zu durchlaufen. Sie können nicht tiefgründig hinterfragen, warum bestimmte Designentscheidungen getroffen wurden, oder eine kohärente Theorie des Programms kontinuierlich weiterentwickeln.
Die Abstraktion von formalen Systemen und die Fähigkeit, mit Unschärfen, Unsicherheiten und Mehrdeutigkeiten zu arbeiten, ist eine zutiefst menschliche Qualität, die sich bislang nicht durch KI ersetzen lässt. Aus SEO-Sicht gewinnt die Diskussion um „Programmieren als Theoriebildung“ und die Rolle von KI-gestützten LLMs zunehmend an Relevanz. Entwickler, Projektmanager und Technologiefans suchen vermehrt nach differenzierten Betrachtungen, die über die simplen Schlagworte „KI ersetzt Programmierer“ hinausgehen. Die Auseinandersetzung mit philosophischen und pädagogischen Ansätzen, die zeigen, dass Programmieren ein intellektuell kreativer Prozess ist, lässt sich gut mit Schlüsselwörtern wie „Programmieren verstehen“, „Softwaretheorie“, „LLM Grenzen“, „KI in der Softwareentwicklung“ und „menschliche Kreativität vs. KI“ verbinden, um hohe Sichtbarkeit zu erzielen.
Abschließend lässt sich festhalten, dass Peter Naurs Konzept der Programmierung als Theoriebildung ein entscheidender Denkansatz ist, um die wahren Herausforderungen und den Wert humaner Möglichkeiten in der Softwareentwicklung zu erfassen. Es erinnert daran, dass das bloße Generieren von Text durch Künstliche Intelligenz nicht gleichbedeutend mit dem tiefen, reflektierten und erfahrungsbasierten Verständnis eines Menschen ist. Große Sprachmodelle können zweifellos wertvolle Hilfsmittel sein, sie bleiben jedoch Werkzeuge, deren Nutzen von der Weisheit abhängig ist, mit der Menschen sie nutzen und weiterentwickeln. So bleibt der menschliche Programmierer auch in Zukunft unerlässlich – als Theoriebildner, als kreativer Geist und als Hüter der komplexen Welten, die Software zu erschaffen vermag.