Kritik an der Torheit der Programmierung in natürlicher Sprache
- Seit den Anfängen automatischer Rechenmaschinen gab es Menschen, die mit einer Programmierweise unzufrieden waren, die formale Symbolsysteme verlangt.
- Die Maschine ist ein „treuer Sklave“, der gegebene Befehle unverändert ausführt und selbst offensichtliche Fehler unverändert abarbeitet.
- Manche erwarteten daher, dass die Maschine Fehler nicht einfach ignoriert und ausführt, sondern sich „vernünftiger“ verhält.
Entstehung und Entwicklung höherer Programmiersprachen
- Maschinensprache wurde als gefährliche Schnittstelle wahrgenommen, da sie kaum Fehlererkennung oder Redundanz bietet.
- Daraufhin entstanden höhere Programmiersprachen, und durch Fehlermeldungen wurden falsche Ergebnisse zunehmend verhindert.
- Dennoch verlangt Programmierung weiterhin formale Symbole und nach wie vor sorgfältige Präzision.
Das Plädoyer für Programmierung in natürlicher Sprache und die Gegenargumente
- Es gab die Behauptung, die Steuerung von Maschinen in natürlicher Sprache würde den Nutzern das Leben erleichtern.
- Dahinter stand die Annahme, dass dies mit zunehmender Komplexität der Maschinen hilfreich sein könnte.
- Doch Veränderungen an der Schnittstelle regeln nicht einfach die Arbeitsteilung neu, sondern erzeugen zusätzlich Aufwand für Zusammenarbeit und Kommunikation.
- Tatsächlich nahm mit breiteren Schnittstellen oft die Arbeitslast auf beiden Seiten zu, wodurch alles eher komplexer wurde.
Historische Beispiele aus Mathematik und Symbolsystemen
- Die Mathematik des antiken Griechenlands blieb bei sprach- und bildzentrierten Verfahren stehen, wodurch ihre Entwicklung stagnierte.
- Auch die islamische Mathematik kam zum Stillstand, weil sie kein Symbolsystem übernahm.
- Europa erzielte dagegen mit der Einführung formaler Symbolsysteme durch Persönlichkeiten wie Vieta, Descartes, Leibniz und Boole enorme Fortschritte.
Die Vorteile formaler Sprachen und die Grenzen natürlicher Sprache
- Formale Sprachen können mit einigen einfachen Regeln viele Fehler verhindern.
- Formale Symbole ermöglichen Studierenden logisches Denken, das früher nur Genies möglich war.
- Natürliche Sprache ist mehrdeutig und vermischt sich leicht mit bedeutungslosem Gerede, weshalb sie sich nicht für fehlerfreie logische Ausdrücke eignet.
Was wäre, wenn natürliche Sprache die einzige Ein-/Ausgabeform gewesen wäre?
- Hätten wir Maschinen von Anfang an nur in natürlicher Sprache gesteuert, hätten wir am Ende dennoch einen „Bootstrap“-Prozess gebraucht, um wieder zu formalen Systemen zurückzukehren.
- Dieser Prozess hätte Tausende von Jahren dauern können und wäre letztlich doch bei formalen Sprachen gelandet.
Pädagogischer Rückschritt und das Phänomen des „neuen Analphabetismus“
- In den vergangenen Jahrzehnten hat die Schwächung intellektueller Schulung dazu geführt, dass viele Menschen nicht einmal ihre eigene Muttersprache wirklich beherrschen.
- Die Fülle an inhaltsleeren Formulierungen in wissenschaftlichen Arbeiten, technischen Berichten und Regierungsdokumenten belegt dies.
- Dieses Phänomen lässt das Scheitern der Programmierung in natürlicher Sprache vorausahnen.
Abschließende Intuition
- Eine Maschine zu bauen, die in natürlicher Sprache programmiert werden kann, dürfte ungefähr so schwierig sein wie ihre Nutzung
1 Kommentare
Hacker-News-Kommentare
Manche meinen, es sei gerade angesagt, LLMs (Large Language Models) zu verteidigen
Ein altes Zitat von Hal Abelson kommt in den Sinn
Natürliche Sprache hat Beschränkungen, die aus den geistigen Grenzen des Menschen entstehen
Maschinensprache wird als unnötig gefährliche Schnittstelle wahrgenommen
Statt Computerprogramme in natürlicher Sprache zu erzeugen, sollten sie direkt ausgeführt werden
Natürliche Sprache eignet sich nicht zur Vermittlung von Regeln und Anweisungen
Sprachen für bestimmte Domänen bieten eine Präzision und Klarheit, die natürliche Sprache nicht liefern kann
Forth, PostScript und Assembly sind „natürliche“ Programmiersprachen, die gut zur Ausführungsumgebung von Code passen
Fortgeschrittene Programmiermethoden werden eher wie Programmiersprachen aussehen als wie natürliche Sprache
Dass Fehler als Fehlermeldungen erscheinen, ist eine große Verbesserung