KI-Tools revolutionieren die Softwareentwicklung. Aber nachprüfen sollte man schon, ob das, was das Elektronengehirn da vorschlägt, wie erwartet funktioniert. Mike Schilli macht Stichproben.
Wenn ich daran denke, mit welchen Fragen ich früher Kandidaten bei Einstellungstests gegrillt habe, muss ich darüber heute nur noch lachen. ChatGPT wüsste auf jede Frage binnen Sekunden die richtige Antwort. Und nicht nur das: Das LLM könnte zudem schlüssig begründen, warum der gewählte Algorithmus funktioniert und der effizienteste ist, oder alternative Lösungen mit leicht abgewandelten Voraussetzungen vorschlagen. Der Roboter würde mit gehisster Flagge aus jedem Job-Interview herausmarschieren, den Arbeitsvertrag so gut wie in der Tasche.
Selbst eine kniffelige Einstellungsfrage (Abbildung 1), die ich anno 2009 schon einmal in dieser Reihe besprochen habe, weil Silicon-Valley-Firmen damals ihre Kandidaten mit dergleichen traktierten [1], meistert ChatGPT heutzutage mit Bravour (Abbildung 2). Allerdings handelt es sich bei der Frage mit den zwei Bowling-Kugeln, die der Proband von unterschiedlichen Stockwerken aus nach unten wirft, um festzustellen, nach welchem Sturz sie erstmals zerdeppern, um eine allseits bekannte. Die Lösung kursiert schon lange im Internet, Meta und Konsorten haben ihre Einstellungstests längst umgestellt.
Besserwisser
Gute Antworten auf derartige Quizfragen bieten teilweise auch traditionelle User-Foren wie Stack Overflow. Dort ärgern mich aber oft die Besserwisser, die mit allgemein gehaltenen Ratschlägen prahlen, statt auf die konkrete Lösung eines Problems einzugehen. Das Ranking der Antworten lässt die hilfreicheren Ratschläge zum Glück meist nach oben sprudeln. Das ist wohl auch die Quelle für die Trainingsdaten internetaffiner LLMs.
Trotzdem: Auf Fragen, die noch nie ein Mensch irgendwo im Internet beantwortet hat, weiß eine KI systembedingt keine Antwort. Sobald sich aber ein Mensch findet, der des Rätsels Lösung der Öffentlichkeit zugänglich macht, und ein KI-Crawler sie aufspürt, ist es viel bequemer, die KI zu fragen, als mühsam Quellen im Internet abzuklappern und die Spreu vom Weizen zu trennen.
Keine Doku mehr lesen
Im Alltag erleichtern KI-Tools definitiv das Programmieren mit schlecht dokumentierten APIs. Da will man eine clever erscheinende Library von Github nutzen, aber dort finden sich nur eine schlampig zusammengeklöppelte Dokumentation und einige wenig praxisbezogene Beispiele. Zwar unterstützen Web-APIs oft Tools wie Swagger oder Googles Protobuf, die ein Metaformat automatisch in Anwendercode umwandeln. Doch wer macht sich schon die Mühe, wenn ein KI-Bot eine Anweisung wie “Schreibe eine Go-Funktion, die über die Google-API die Subscriber eines Youtube-Channels ausgibt” versteht (Abbildung 3) und gleich fertigen Code (Abbildung 4) ausspuckt? Den zu prüfen und gegebenenfalls anzupassen geht viel schneller, als ihn mit dem API-Manual in der Hand selbst zu schreiben.
Dieses Verfahren bietet gravierende Vorteile beim Ausprobieren von vagen Produktideen. Schwebt mir als Entwickler eine neue Applikation vor, geht oft viel Zeit damit verloren, eine erste Demoversion zu erstellen. Es gilt, die Dokumentation zu lesen, Beispielcode zu kopieren oder neu zu erstellen und Fehler im Quellcode schrittweise zu eliminieren, um überhaupt zu sehen, ob eine Idee ansatzweise trägt.
Am Ende stellt sich oft heraus, dass eine gewünschte Funktion zum Heranholen der geforderten Daten fehlt, und der ganze Aufwand war für die Katz. Gibt die KI aber grünes Licht, ist es viel einfacher und schneller, die Einzelkomponenten des erstellten Grundgerüsts zu verfeinern, als jedes Mal bei null anzufangen.
Multilinguist
Kaum jemand beherrscht mehr als ein paar Programmiersprachen gleichzeitig, aber einige Anwendungen erfordern eben ein bestimmtes Tool. Eine dynamische Webapplikation braucht Javascript, und wer darin nicht firm ist, bleibt außen vor.
So kam mir neulich die Idee, zwecks Datensparsamkeit die anhängenden Tracking-Parameter von Twitter-Links abzuschneiden, bevor ich sie an Freunde weitersende. Das Tool sollte webbasiert laufen und möglichst wenig Tastendrücke erfordern, um damit auf meinem Mobiltelefon blitzschnell Links zurechtzustutzen. Also bot sich eine HTML-Seite auf einem Webserver an, und mit einer Prise Javascript gewürzt sollte das doch funktionieren.
Dem Produktmanager in mir schwebte vor, dass die App von einer ins Textfeld im Format http://”https://x.com/xxx?s=y&t=z eingegebenen URL den letzten Query-Parameter abzwickt, sodass nur noch http://”https://x.com/xxx?s=y” übrigbleibt. Vielleicht könnte sie das Ergebnis gleich noch auswählen, sodass ein langes Antippen den übrig gebliebenen Stumpf per Copy für ein späteres Paste in den lokalen Puffer übernähme?
Nun bin ich kein HTML- oder Javascript-Fuchs, aber allein mit dem Wissen, dass dergleichen prinzipiell möglich ist, konnte ich ChatGPT dazu anleiten (Abbildung 5), den zur Lösung notwendigen Code (Abbildung 6) herauszurücken.
Eine Sache sticht ins Auge: Die Anleitung musste gar nicht erst auf technische Details wie den Query-Parameter eingehen, der zu entfernen war. Es genügte, das Verfahren anhand eines Beispiels zu beschreiben: “So sah die URL vorher aus, und so hinterher.” Das Elektronengehirn erkannte routiniert, dass es sich bei der gestellten Aufgabe um die Entfernung des letzten URL-Parameters handelte. Das gelingt auch jemandem ohne technische Fachausbildung.
Die künstliche Intelligenz befreit den Tool-Schmied also nicht nur davon, die verwendete Programmiersprache zu kennen. Auch technische Details wie das Einbetten von Javascript in HTML, Zugriff auf den Text in einem Input-Feld oder das Parsen einer URL fallen unter den Tisch. Die KI ersetzt den Programmierer als Tool-Designer durch einen technisch halbwegs versierten Produktmanager. Der muss zwar wissen, ob und wie etwas grundsätzlich geht, und das gewünschte Resultat anhand von Beispielen beschreiben können. Detailkenntnisse zur Implementierung braucht er jedoch nicht.
Verminderter Lerneffekt
Allerdings geht dabei ein gewisser Lerneffekt verloren. Wer erinnert sich noch an den Englischunterricht und die drakonische Vorschrift, unbekannte Vokabeln nicht im Englisch-Deutsch-Lexikon nachzuschlagen, sondern in einem Englisch-Englisch-Werk wie dem Oxford English Dictionary? Angeblich lernte der Schüler so besser und mehr.
Stießen nun unerfahrene Programmierer bislang auf ein Problem, durchstöberten sie vielleicht viele Webseiten auf der Suche nach der Lösung und nahmen hier und dort noch den einen oder anderen interessanten Informationshappen mit. ChatGPT ist das Äquivalent zum Englisch-Deutsch-Nachschlagewerk, das zwar bequem und schnell die richtige Antwort findet, aber eben den zusätzlichen Lerneffekt unterschlägt. Zukünftige Programmierergenerationen könnten eventuell die Folgen spüren.
Codearchäologie
Auch Code längst vergessener Zivilisationen, durch Ausgrabungen an heiligen historischen Stätten ans Licht gezerrt, beherrscht der Automat. Erinnert sich noch jemand an die Programmiersprache Perl und deren Logging-Framework Log4perl? In Abbildung 7 weise ich ChatGPT an, einen Logger zu initialisieren und anschließend Meldungen auf zwei verschiedenen Log-Levels abzuschicken.

Abbildung 7: ChatGPT kommt selbst mit längst verschollenen Skriptsprachen wie Perl problemlos zurecht.
Im vorliegenden Fall funktioniert das Skript – aber ChatGPT hat prinzipiell keine Ahnung, ob ein Programm tatsächlich tut, was es soll. So kommt der Chatbot des Öfteren mit Quellcode daher, der beim Kompilieren Syntaxfehler auswirft. Ähnliches gilt auch für die Resultate anderer Chatbots (Abbildung 8).

Abbildung 8: Auch Grok von X (ehemals Twitter) beherrscht obskure Module längst vergessener Skriptsprachen.
Vorsicht, Fehler!
Wie gesagt: ChatGPT kann gar nicht wirklich programmieren, nur bereits existierende Programme nachbauen. Das kann zu katastrophalen Fehlern führen. Erschwerend kommt hinzu, dass die KI den ausgespuckten Code nicht einmal probeweise kompiliert – dazu hat sie weder die Zeit noch die Fähigkeit.
Nun machen auch menschliche Programmierer Fehler. Falls aber ein Kollege anmerkt, dass sich der neu erstellte Code nicht kompilieren lässt, bügelt der Mensch den Fehler (meist) aus. Nicht so ChatGPT: Es kommt vor, dass sich die KI dafür entschuldigt, dass der Code einen Fehler enthält, und gleich darauf einen “Fix” vorschlägt, der den Fehler erneut reproduziert.
So instruiert der Prompt in Abbildung 9 ChatGPT 4o, ein Go-Programm zu erstellen, das ein Datum im Format “Montag, 1. April” einliest und die Zahl der bis dahin verbleibenden Tage ausgibt. Der Code lässt sich mit »go build« anstandslos kompilieren, spuckt aber zur Laufzeit einen Fehler aus (Abbildung 10): Die KI hat “vergessen”, dass der (von ChatGPT höchstselbst) eingebettete Datums-String im deutschen und nicht im englischen Format vorliegt.
Das ließe sich unter Umständen von den KI-Machern besser gestalten. Vielleicht kommt ja bald ein Modell heraus, das Programme in gängigen Sprachen kompilieren und in einer Sandbox ausführen kann.
Verrohung der Sitten
KI-Systeme wie ChatGPT oder Grok gehen sehr gnädig mit schlampig gestellten Fragen um. Sie legen weder Wert auf korrekte Orthografie, noch bestehen sie auf einem Fragezeichen am Ende einer Frage. Auch sehr vage gestellte Anfragen versuchen sie nach bestem Wissen zu beantworten. Ähnliche Schlamperei würde auf einem Forum wie Stack Overflow (wohl zu Recht) als Faulheit interpretiert, eine Rüge einiger Antwortwilliger wären die unweigerliche Folge.
Zudem ist es der künstlichen Intelligenz schnurz, ob man freundlich ist oder andere Personen das beschriebene Problem überhaupt nachvollziehen können. Was wohl passieren würde, wenn jemand, der zu lange ChatGPT angebellt hat, plötzlich wieder auf Stack Overflow bei echten Menschen Rat sucht? (uba)
Infos
- Perl-Snapshot: Mike Schilli, “Herausgekegelt”, LM 12/2009, S. 116, https://www.lm-online.de/19401













