Programmieren ohne Ahnung oder Planung ?
Kann man wirklich mit ChatGPT Programme schreiben, ohne je zuvor mit einer Programmiersprache in Berührung gekommen zu sein? Yes You can – nur müssen Sie schon ein wenig aufpassen, was Ihnen der „stochastische Papagei“ ChatGPT erzählt. Auch wenn nur eine Skizze zur Python-Oberfläche führen soll.
Vor allem aber sollten Sie die Fähigkeit entwickeln, klar formulieren zu können, was ihnen vorschwebt. Das Buch ChatGPT, OpenAI und der Blaue Planet gibt Ihnen dazu einige Hilfestellungen. Dort wird z.B. geschildert, wie Sie ChatGPT beauftragen können, ein Python Programm zu schreiben, das Primzahlen auflistet.
Nur mit Worten (bzw. dem Prompt in der ChatGPT-Webapplikation) können Sie das Programm im nächsten Schritt so modifizieren lassen, daß maximal 10 Primzahlen in einer Zeile erscheinen, oder Sie können das ganze Programm nach C++ übersetzen lassen. Wenn Sie nicht wissen sollten, wie man solch einen Quelltext ausführt, fragen Sie einfach ChatGPT.
Gerade für Einsteiger in eine neue Programmiersprache kann ChatGPT eine enorme Hilfe sein. Statt einer Recherche auf Google oder Bing mit vielen Treffern bekommen Sie genau eine Antwort von ChatGPT. Je nach Fragestellung (bzw. dem Prompt) kann dabei die Antwort von ChatGPT lediglich aus Text oder auch zusätzlich aus einer schwarzen Box bestehen, die den erzeugten Programmcode enthält. Die Web-Oberfläche hat einen Button, um den Programmcode in die Zwischenablage zu schieben.
Wenn Sie noch ganz am Anfang stehen, können Sie ChatGPT auch nach den Eigenschaften einer Programmiersprache fragen:
Welche Vor- und Nachteile hat die Programmiersprache Python?
Python ist eine weit verbreitete und vielseitige Programmiersprache, die für verschiedene Anwendungen genutzt wird. Hier sind einige Vor- und Nachteile von Python:
Vorteile:
- Lesbarkeit und Einfachheit: Python zeichnet sich durch eine klare und leserliche Syntax aus, was die Entwicklung und Wartung von Code erleichtert.
- Umfangreiche Bibliotheken: Python verfügt über eine breite Palette von Bibliotheken und Frameworks, die die Entwicklung beschleunigen und den Funktionsumfang erweitern.
- Community-Unterstützung: Python hat eine aktive und engagierte Community. Dies bedeutet, dass es viele Ressourcen, Tutorials und Foren gibt, die Entwicklern bei Probleme oder Fragen helfen.
- Plattformunabhängigkeit: Python ist plattformunabhängig, was bedeutet, dass PythonCode auf verschiedenen Betriebssystemen ohne Änderungen ausgeführt werden kann.
- Vielseitigkeit: Python wird in verschiedenen Bereichen eingesetzt, von Webentwicklung über Datenanalyse bis hin zu KI und maschinellem Lernen.
Nachteile:
- Geschwindigkeit: Im Vergleich zu kompilierten Sprachen wie C++ oder Java kann Python langsamer sein, da es eine interpretierte Sprache ist.
- Begrenzte mobile Entwicklung: Python ist nicht die erste Wahl für die Entwicklung von nativen mobilen Anwendungen, obwohl es Frameworks wie Kivy oder BeeWare gibt.
- Global Interpreter Lock (GIL): Der GIL in CPython (die Referenzimplementierung von Python) kann die parallele Ausführung von Threads einschränken und die Leistung in bestimmten Szenarien beeinträchtigen.
- Speicherverbrauch: Python kann einen höheren Speicherverbrauch haben im Vergleich zu Sprachen wie C.
Kannst Du mir Code schreiben, der eine einzugebende Zahl in Primfaktoren zerlegt ausgibt?
Natürlich! Hier ist ein einfaches Python-Programm, das eine eingegebene Zahl in Primfaktoren zerlegt und ausgibt:
def primfaktorzerlegung(n):
faktoren = []
divisor = 2
while divisor <= n:
if n % divisor == 0:
faktoren.append(divisor)
n = n // divisor
else:
divisor += 1
return faktoren
# Benutzereingabe für die Zahl
zahl = int(input("Geben Sie eine Zahl ein: "))
# Primfaktorzerlegung durchführen
ergebnis = primfaktorzerlegung(zahl)
# Ausgabe der Primfaktoren
print(f"Primfaktoren von {zahl}: {ergebnis}")
ChatGPT erklärt nachfolgend noch kurz die Funktion „primfaktorzerlegung“ und zerlegt exemplarisch die Zahl 24. Ein Test dieses Python-Programms (gespeichert unter primfaktoren.py) mit den Zahlen 17077 und 18747 sieht so aus:
pi4@raspi4:~/ChatGPT_Programmieren $ python primfaktoren.py
Geben Sie eine Zahl ein: 17077
Primfaktoren von 17077: [17077]
pi4@raspi4:~/ChatGPT_Programmieren $ python primfaktoren.py
Geben Sie eine Zahl ein: 18747
Primfaktoren von 18747: [3, 3, 2083]
Programme über ChatGPT schreiben zu lassen, funktioniert also ganz gut (zumindest einfache). Aber hat ChatGPT wirklich verstanden was dabei abgeht? Kennt ChatGPT wirklich Primzahlen? Es klingt paradox: ChatGPT kann wunderbar erklären was eine Primzahl ist, hat aber trotzdem keine Ahnung davon.
Vielleicht wird es Sie überraschen, daß ChatGPT bei der direkten Frage, ob 17077 eine Primzahl ist, schon mal versagt hat und meinte 17077 wäre durch 7 ganzzahlig teilbar (ChatGPT ist dumm, der Code Interpreter hilft). Zuvor hatte GPT-4 allerdings korrekt dividiert und das Resultat mit 3 Kommastellen angegeben. Der hier von ChatGPT ausgegebene Python-Algorithmus „Primfaktorzerlegung“ funktioniert dagegen perfekt.
Es kann folglich sehr nützlich sein, ChatGPT Programmcode generieren zu lassen. Fehler im jeweiligen Code sind allerdings nicht ausgeschlossen, und das menschliche „mitlesen“ eine derzeit notwendige Interaktion. Wenn Sie den Programmcode von ChatGPT nicht verstehen, bietet sich ein Nachfrage an:
Was bedeutet // in Python ?
In Python ist //
der sogenannte Floor-Divisions-Operator (Ganzzahldivision). Dieser Operator führt eine Division durch, gibt jedoch das Ergebnis als ganze Zahl (Ganzzahl) zurück, indem der Dezimalteil abgeschnitten wird. Das bedeutet, dass das Ergebnis immer auf den nächsten kleineren Integer gerundet wird…..
ChatGPT ergänzt diese Erklärung noch um einen kurzen Programmcode. Wie im Buch werden die Ausgaben von ChatGPT hier kursiv geschrieben und durch eine rechtsbündige vertikale Linie ergänzt.
Welche Programmiersprachen beherrscht ChatGPT ?
Ok – nehmen wir mal an, Sie haben keinen Dunst von Programmiersprachen, haben sich aber trotzdem vorgenommen ein Buch über ChatGPT und Programmiersprachen zu schreiben, denn in einem Youtube-Video wurde Ihnen erklärt sich eine passende „Nische“ zu suchen, um dann mit dem Schreiben von Büchern sehr viel Geld in kürzester Zeit zu verdienen. Für so ein 2 Stunden Projekt brauchen Sie ein von ChatGPT gemachtes Inhaltsverzeichnis zum Buch Programmieren lernen mit ChatGPT (PDF). Wenn Sie sich dieses Inhaltsverzeichnis durchgelesen haben, werden Sie (hoffentlich) zur Erkenntnis kommen, daß ChatGPT zwar kreativ sein kann, aber im Kern keine Ahnung davon hat, was es tut bzw. tun soll. Der Zusammenhang wird genauer bei Bücher und ChatGPT erläutert. ChatGPT kann zwar problemlos die Programmiersprachen C++, Python, Java oder Ruby auflisten und Eigenschaften dazu nennen, aber ein konkreter Zusammenhang mit ChatGPT wird im Inhaltsverzeichnis nicht hergestellt. Echte (nicht gefälschte) Rezensionen für solch ein ChatGPT-Buch dürften also nicht gerade positiv ausfallen…..
So werden im Buch ChatGPT OpenAI und der blaue Planet u.a. SVG-Dateien über Python Code erzeugt. Ein Beispiel dafür, daß graphische Darstellungen auch bei der Gratisversion GPT-3.5 möglich sind. Und natürlich kann ChatGPT auch HTML-Code für Webseiten generieren. Auch ein Web-Crawler und graphische Oberflächen können über geeignete ChatGPT-Prompts erzeugt werden. Übrigens vereinfacht die neue Canvas-Oberfläche von ChatGPT-4o eine interaktive Softwareentwicklung.
ChatGPT zeichnet einen Schneemann als SVG-Grafik
Wie steht es um die graphischen Fähigkeiten von ChatGPT? Dabei muß berücksichtigt werden, daß ChatGPT als Generator für Texte beim Training des Neuronalen Netzes auch mit Texten „gefüttert“ wurde, während Dall-E3 oder Midjourney Bilder bekommen haben. Man darf also keine zu hohen Erwartungen haben…..
Ein Artikel der NZZ vom 31.7.2023 hat den Titel: Chat-GPT wird immer dümmer – was ist da los. Und dieser Artikel beginnt mit einer Animation von Unicorn-Bildern, die ChatGPT täglich erzeugt, um die „Intelligenz“ von ChatGPT zu messen. Im Artikel werden GPT3.5 und GPT-4.0 verglichen und Fehler bei Primzahlen thematisiert. Statt ChatGPT nun mit dem Fabelwesen „Einhorn“ zu beschäftigen, fand ich einen Schneemann aktuell passender:

Es ist also durchaus möglich, SVG-Grafiken mit der kostenlosen GPT-3.5 Version zu erstellen. Das PDF zum Chatverlauf zeigt allerdings, daß ChatGPT etwas eigenwillig ist, aber mit Textvorgaben in der SVG-Grafik keine Probleme hat. Der SVG-Code ist im PDF enthalten und von dort kopierbar. Unter https://gpt-unicorn.adamkdean.co.uk/ können Sie das tägliche Einhorn bewundern und dort gibt es unter „Talk“ ein YouTube-Video, das die generativen Fähigkeiten genauer analysiert. Etwa ab der 28. Minute wird GPT-4.0 mit Stable-Diffusion kombiniert. Man kann ChatGPT-4o zwar auch als Bildgenerator nutzen, aber intern wird dabei Dall-E3 angesprochen. Bei der Interpretration von Bildern ist dagegen wieder GPT-4o aktiv.