2 Punkte von GN⁺ 2025-04-04 | 1 Kommentare | Auf WhatsApp teilen

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

 
GN⁺ 2025-04-04
Hacker-News-Kommentare
  • Manche meinen, es sei gerade angesagt, LLMs (Large Language Models) zu verteidigen

    • Umgekehrt fragt man sich, was passieren würde, wenn man Projekte mittlerer Komplexität von Code in natürliche Sprache überführt
    • Es ist fraglich, ob sich Verhalten und Anforderungen von Quellcode ausreichend beschreiben lassen und ob eine natürlichsprachliche Beschreibung tatsächlich leichter verständlich ist
    • Vor allem einfache Anwendungen werden demonstriert, weil sich Komplexität und Präzision schwer beherrschen lassen
    • Es gibt einen Grund, warum juristische Fachsprache kein gewöhnliches Englisch ist
  • Ein altes Zitat von Hal Abelson kommt in den Sinn

    • Informatik ist keine Wissenschaft und hat wenig mit Computern zu tun
    • Die Computerrevolution ist eine Revolution der Denk- und Ausdrucksweise
    • Mathematik liefert präzise Begriffe für das „Was“, Berechnung liefert präzise Begriffe für das „Wie“
  • Natürliche Sprache hat Beschränkungen, die aus den geistigen Grenzen des Menschen entstehen

    • Als Programmierer wird ein Problem oder eine Absurdität oft erst nach der Implementierung im Code klar
    • Es dauert länger, etwas in natürlicher Sprache präzise zu erklären
  • Maschinensprache wird als unnötig gefährliche Schnittstelle wahrgenommen

    • Höhere Programmiersprachen wurden entwickelt, um Fehler zu verringern
    • Rust ist für Entwickler vorteilhaft, weil es Fehler klar aufzeigt
    • LLMs fühlen sich wie ein halbintelligentes Ratespiel an
    • Der Ansatz von Rust wird bevorzugt
  • Statt Computerprogramme in natürlicher Sprache zu erzeugen, sollten sie direkt ausgeführt werden

    • Als Beispiel werden ein Grafiksystem und ein Tic-Tac-Toe-Programm genannt
    • Es wären auch Prompts für Dateisysteme und multitaskingfähige Betriebssysteme nötig
    • Solche Fortschritte werden bis Anfang April nächsten Jahres erwartet
  • Natürliche Sprache eignet sich nicht zur Vermittlung von Regeln und Anweisungen

    • Als Beispiel werden Probleme bei der Auslegung von US-Gesetzen genannt
    • Die Klarheit und Verbindlichkeit von Computersprachen schaffen ein Gleichgewicht
  • Sprachen für bestimmte Domänen bieten eine Präzision und Klarheit, die natürliche Sprache nicht liefern kann

    • Der umgekehrte Versuch erfordert mehr Arbeit
  • Forth, PostScript und Assembly sind „natürliche“ Programmiersprachen, die gut zur Ausführungsumgebung von Code passen

    • Die Frage ist, für wen „natürlich“ gilt: für Menschen oder für Computer
    • KI macht menschliche Sprache nicht zu etwas, das für Computer natürlich ist
    • KI wird Sprachen erfinden, die zu ihrer eigenen Umgebung passen
  • Fortgeschrittene Programmiermethoden werden eher wie Programmiersprachen aussehen als wie natürliche Sprache

    • Wenn man nicht selbst programmieren will, braucht man eine Methode, um eine Intelligenz anzuweisen, die das Programmieren übernimmt
    • Eine fortgeschrittene Methode des Anweisens wird eher wie Unterricht als wie natürliche Sprache aussehen
  • Dass Fehler als Fehlermeldungen erscheinen, ist eine große Verbesserung

    • Manche empfinden es eher als lästig, dass sich Fehlermeldungen nicht ignorieren lassen
    • Bei der Bewertung der Vorteile einer Programmiersprache setzen manche „einfache Programmierung“ mit der Leichtigkeit gleich, Fehler zu machen