Wie gut lässt sich mit ChatGPT eigentlich wirklich entwickeln? Also nicht bloß eine kleine Funktion, sondern ein ganzes Programm? Und warum hat das Ganze etwas von Kleinkind-Erziehung?
Das Ergebnis einer einzelnen Anweisung – nicht einmal schlecht.
(Bild: Lang)
Der aktuelle KI-Hype ist sicherlich nur der Anfang, zu spektakulär sind die vielen hübschen DALL-E- und vor allem Midjourney-Bilder, zu gut die Antworten einiger Sprachmodelle. Aber man stößt letztlich doch schnell an Grenzen.
Bis heute ist es mir nicht gelungen, ein Bild von Köln ohne Dom aus einer KI zu kitzeln. Ein Gesicht ohne Augen? Nein, offenbar verstehen DALL-E & Co. nicht, was „ohne“ bedeutet – logisch, denn ein Verstehen gibt es da nicht, allenfalls Assoziationen. Und dennoch lässt sich KI als künstlerisches Werkzeug verwenden.
Nun ist Kunst nichts Präzises, da gibt es kein hartes „richtig oder falsch“. Bei Code sieht das schon ganz anders aus. KIs sollten sich auf dem Feld der Programmierung dennoch deutlich wohler fühlen. Eine Programmiersprache wie Python ist im Grunde doch recht überschaubar – verglichen mit menschlicher Grammatik, Kunst oder visueller Wahrnehmung.
Es versteht sich von selbst, dass ChatGPT bei simplen Fragen helfen kann, etwa: „Wie deklariere ich Variablen in Python?“ Den Autor hat interessiert, ob ChatGPT auch ein komplettes Programm bauen kann – einen simplen Taschenrechner.
Ein solcher vereint nämlich alles Wichtige: Eine interaktive graphische Benutzerschnittstelle, Eingaben, Berechnungen und Ausgaben. Der Rechner sollte die Grundrechenarten beherrschen plus eine Log-Datei anlegen plus 19 Prozent von etwas berechnen können. Und das Ganze sollte am Ende als EXE-Datei unter Windows laufen. Auf in eine Schlacht mit einem hochbegabten Kleinkind.
ChatGPT, mach!
Am Ende werden es 50 Anweisungen/Prompts für ChatGPT werden und es beginnt damit, dass ich dem Bot quasi einen Kontext vorgegeben habe:
„Act as a python developer.“
Dieser Tipp stammt von einem selbsternannten Prompt-Experten – der seine Expertise auch zum Kauf anbietet. Die nächste Anweisung war dann sehr konkret, aber allgemein gehalten:
„Write a basic calculator with a simple gui“
Erste Reaktion: ChatGPT liefert ein halbes Skript – ähnlich, wie es auch beim Generieren von Marketing-Texten und dergleichen vorkommen kann. Dieses Verhalten sollte sich durch die ganze Session ziehen. Der simple Hinweis …
„This seems to be only part of the code“
… hat die KI dann aber veranlasst, auch den Rest zu zeigen.
Das Ergebnis einer einzelnen Anweisung – nicht einmal schlecht.
(Bild: Lang)
Nichtdestotrotz erstaunlich: ChatGPT hat aus dem Stand einen lauffähigen „Taschenrechner“ gebaut – wenn auch nur mit Addition. Für den Bau der grafischen Nutzeroberfläche wird auf die Bibliothek Tkinter zurückgegriffen, worauf ChatGPT vor der Code-Ausgabe hinweist. Sehr nützlich, da diese zunächst installiert werden möchte.
Der Rechner ohne vorherigen „Rollenwechsel“.
(Bild: Lang)
Noch einmal kurz zur Aussage des Prompt-Experten: Die gleiche Aufgabe hat der Autor (später) nochmal in einem neuen Chat gestellt, ohne den Vorab-Kontext, dafür mit der Prompt-Ergänzung „… python based“. Das Ergebnis war: Sehr überraschend! Heraus kam nämlich ein Taschenrechner mit allen vier Grundrechenarten, realisiert mit nur 44 statt 77 Zeilen Code. Zudem ließ sich bei dieser Variante auch mit dem Ergebnis weiterrechnen, was bei Version 1 nicht ging.
Was lernen wir daraus? Vorsicht bei vermeintlichem Expertenwissen und ChatGPTs Launenhaftigkeit nicht unterschätzen – ein und derselbe Prompt bringt immer wieder andere Ergebnisse.
Finalisierung Version 1
Weiter ging es allerdings mit der ersten Version des Rechners, die nun die sonstigen Rechenarten lernen sollte:
„Add calculations for substraction, multiplication and division“
Dazu hatte ChatGPT scheinbar wenig Lust: Wieder kam nur ein halbes Skript, dieses Mal hat es ganze 7 Aufforderungen gebraucht, um die KI dazu zu bringen, die zweite Skripthälfte auszugeben – der ganze Code am Stück ließ sich ihr nicht entlocken.
Ja, es ist im Übrigen genauso lästig, einer KI etwas Zigmal sagen zu müssen, wie einem bockigen Kleinkind oder überforderten Kollegen. Naja, fast – ChatGPT entschuldigt sich zumindest ständig.
Da der Basisrechner nun fertig war, sollte er als EXE für Windows zur Verfügung stehen. Und auf die Frage …
Bravo! Das mag eine triviale Aufgabe sein, aber wenn es ums Kompilieren geht, landet man meistens doch in der Fehlerhölle.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Erweiterung 1: Logging
Das Wichtigste war nun erledigt, Zeit für mehr Features. Ein simpler Log sollte her:
„Add a function to log all operations to a log file called "calcing.log"“
Logging funktioniert, der Rechner selbst ist kaputt.
(Bild: Lang)
Nun hat es zunächst 8 Versuche gebraucht, bis ein komplettes Skript ausgegeben wurde – samt funktionierendem Logging! Leider hat ChatGPT, wie im Bild zu sehen, zwischenzeitlich den kompletten Rechner umgebaut. Die nächsten 3 Versuche hat ChatGPT wieder diesen Rechner gebaut – und zusätzlich immer nur einen Teil des Skripts ausgegeben.
Langsam wurde das Nervenkostüm doch merklich belastet. Aber gut, um den Bot wieder auf die richtige Spur zu bringen, hat der Autor eine weitere Anfrage gestellt:
„And again you used the wrong code.
Add the logging functionality to this previously produced code:
… code …“
Nur 3 Versuche später gab es endlich den kompletten Code. Allerdings funktionierte etwas mit dem Logging nicht richtig und es ging ein Dutzend Prompts lang ums Troubleshooting. Darunter hilfreichere Tipps, aber auch Ausflüge ins Absurde:
import randomdef shuffle_string(string): # Convert the string to a list of characters chars = list(string) …
Äh, bitte? Irgendwann war wohl auch der Bot genervt und hat den Taschenrechner komplett ignoriert und stattdessen ein Progrämmchen zum Umbauen von Strings produziert. Aber es gab wie erwähnt auch sehr gute Hinweise:
Diese kleine Logging-Demo passte zwar nicht wirklich zur Anfrage und eigentlich sollte ChatGPT auch keine Lehrstunde veranstalten, sondern programmieren, aber im Rahmen des Bugfixings war das dennoch sehr nützlich.
Erweiterung 2: Mehrwertsteuer
Eine komplette Prozentrechnung wollte der Autor ChatGPT nicht abverlangen. Aber zumindest für die Berechnung der Mehrwertsteuer von 19 Prozent sollte es einen Button geben:
„Okay, i put the code together and everything works fine. Now add percentage calculation to the final code:
… code …“
Da Erfahrung klug macht, wurde der vorhandene Code direkt mit in den Prompt kopiert. Es folgte dennoch die zu vermeidende Odyssee:
2 mal unvollständiger Code
Code zum der kleinsten positiven Integer
Code für einen abgespeckten Rechner
3 mal unvollständiger Code
Code für irgendetwas völlig anderes
2 mal unvollständiger Code
Code für eine Klasse „dog“ mit der Ausgabe „Woof woof!“
Code für eine Teilen-Funktion
1 mal unvollständiger Code
Code für Faktorierung
2 mal unvollständiger Code
Code zum Nummern-Raten
X mal unvollständiger Code
ChatGPT hat plötzlich den Context (Code) vergessen
Und dann endlich der Prompt, der zum Quasi-Erfolg führen sollte:
„Okay, you missed it too often. let's start from scratch. To the following code, add a button to calculate 19 percent of the given number. show the updated parts only.“
Taschenrechner mit Log und Mehrwertsteuer – Ziel erreicht.
(Bild: Lang)
Wir merken, die Ansprache wird „menschlicher“ – einige Anfragen enthielten sogar ein „please“. Die Ausgabe war jedenfalls korrekt, es galt allerdings noch, die Code-Schnipsel an die richtigen Stellen im Skript zu kopieren.
Am Ende bleibt zu sagen: Das alles funktioniert ziemlich gut – mit viel Geduld und bei überschaubaren Projekten. Letztlich musste der Autor zwar ein klein wenig eingreifen und Code-Fragmente manuell in das Skript kopieren, aber ChatGPT hat es fast von allein geschafft.
Im Grunde kann man ChatGPT beinahe schon den No-Code-Plattformen zuordnen. Allerdings ist es nur eine Frage der Zeit, bis man an den Punkt kommt, da man doch verstehen muss, was ChatGPT da versucht zu tun.
Was es zu lernen gab? Vor allem, dass ChatGPT ziemlich unzuverlässig ist. Ständig werden nur Code-Teile ausgegeben, manchmal produzieren unterschiedliche Prompts identische Antworten und identische Prompts unterschiedliche, der Kontext wird immer wieder mal vergessen. Aber auch, dass es sich lohnt, Prompts präzise zu formulieren. Wenn man Features, Variablen und die GUI präzise beschreibt, wird ChatGPT diese „Wünsche“ berücksichtigen.