ChatGPT-Tagebuch, Teil 4 Projekt KI-generierter Browser – was bleibt?

Von Mirco Lang Lesedauer: 6 min

Anbieter zum Thema

Das Projekt „ChatGPT-generierter Browser“ begann spielerisch, wurde dann aber zur Geduldsprobe – mit einem gemischten Ergebnis. Ist ChatGPT nun also ein Ersatz für Programmierer und Entwicklerinnen?

Der Browser nach ca. drei und nach 20 Stunden Entwicklung
Der Browser nach ca. drei und nach 20 Stunden Entwicklung
(Bild: Lang)

Die Ausgangsfrage war simpel: Lässt sich mit ChatGPT, ohne größere Kenntnisse in der Entwicklung oder gar der gewünschten Programmiersprache Python, eine echte Anwendung entwickeln? Die Wahl fiel auf einen Browser. Vielleicht nicht sonderlich spannend, aber es gibt eine klare Vorstellung von Funktionen, Verhalten und Optik eines Browsers und Bibliotheken, die entsprechende Standards liefern können.

Hier noch einmal die Ziele aus Teil 1:

  • Aufrufen von URLs
  • Rendern von URLs
  • Chronik mit Vor- und Zurück-Navigation
  • Tabs
  • Favoriten
  • Statusanzeige
  • Sessions
  • Entwicklungszeit: 10 Stunden
  • Sprache: Python

Der Browser nach ca. drei und nach 20 Stunden Entwicklung
Der Browser nach ca. drei und nach 20 Stunden Entwicklung
(Bild: Lang)

Auf Produktseite zeigt sich das Ergebnis einigermaßen mau, aber es ist ein Browser entstanden; mit rudimentären Features – und immerhin einem Fenster, das auch mit Responsive Design zurechtkommt. Die Basis für die GUI war wxPython.

Hier eine kurze Beschreibung der finalen Features:

Das Aufrufen und Rendern von URLs funktionierten einwandfrei. Allerdings müssen URLs komplett eingegeben werden (keine Vervollständigung), Komfortfunktionen wie das automatische Einsetzen von „https://“ und Ähnliches darf man nicht erwarten. Die Chronik speichert lediglich intern die besuchten URLs und erlaubt es, über zwei Buttons vor- und zurückzunavigieren. Eine grafische Umsetzung der Historie gibt es nicht.

Die Reiter funktionieren und es gibt sogar passende Tastenkürzel zum Öffnen und Schließen. Die Tabs-Titel entsprechen den Namen der geladenen Webseiten – ohne Größenbeschränkung, was bisweilen zu sehr, sehr breiten Reitern führt. Favoriten funktionieren ebenfalls, zumindest grundlegend. URLs lassen sich per Menü als Favoriten speichern, die dann in einem eigenen Tab als simple Linkliste präsentiert werden und per Doppelklick starten.

Die Statusanzeige – nun, es gibt sie, aber leider ohne Inhalt. Die Sessions hingegen existieren leider nicht wirklich. Zwar werden schlussendlich die letzten Tabs samt geladener URLs wiederhergestellt, aber weder Favoriten noch Cookies sind persistent.

Im Detail gibt es natürlich bei allen Features viel zu meckern. Die Tabs-Titel sind nach einem Neustart bis zu einem Reload der Seiten jeweils „Reload…“. Das URL-Eingabefeld zeigt tatsächlich nur die Nutzereingabe, nicht die aktuell geladene URL. Tabs können nicht verschoben werden. Teils gibt es kleinere Darstellungsprobleme mit zum Beispiel per Overlay realisierten Werbeschaltflächen. Das nur einige der Probleme.

Das Ziel von zehn Stunden Entwicklungszeit nicht einhalten zu können, war absehbar, letztlich sind es über 20 Stunden geworden. Und da ich schon dabei bin, hier noch ein paar nackte Zahlen:

  • 3 probierte GUI-Toolkits
  • 3 Stunden für die (Neu-)Einrichtung von wxPython
  • 54 Prompts
  • 30 Zeilen Code nach dem ersten Prompt
  • 48 Zeilen für den ersten funktionierenden Prototypen
  • 324 Zeilen für das Endprodukt
  • 30+ Browser-Versionen

Zum Einsatz kam ChatGPT in der Version 3.5 – 4.0 stand schon zur Verfügung, allerdings auch im zahlungspflichtigen Account nur mit Einschränkungen.

Viel näher wird der ChatGPT-Browser der Firefox-Konkurrenz so schnell nicht kommen
Viel näher wird der ChatGPT-Browser der Firefox-Konkurrenz so schnell nicht kommen
(Bild: Lang)

Das Experiment hat mir zwar keinen eigenen Browser spendiert, aber wenn man bedenkt, dass Firefox auf rund 21 Millionen Zeilen Code kommt, wäre die Erwartung wohl auch etwas übertrieben. Aber es gab einiges zu lernen.

Einschränkungen und Mehrwert

Zunächst kurz zu Browsern und Python. Die Definition von Browser-Features ist simpel und die grundsätzliche Umsetzung oft gar kein großes Problem – eben, weil wohl definiert. Solche Funktionen finden sich in vielen Bibliotheken und können direkt eingesetzt werden. Tabs umzusetzen, kostet selbst die kindliche KI keine Mühen. Wenn es um Details geht, die über die Standardaufrufe von Bibliotheksmodulen hinausgehen, wird aber selbst jede noch so bekannte winzige Selbstverständlichkeit eines Browsers aufwändig.

Die schnell umgesetzten Tabs etwa mit sinnvollen Namen zu versehen, heißt, dass die URLs erst geladen werden müssen, damit überhaupt die nötigen Informationen zur Verfügung stehen. Und sie müssten auf ein ordentliches Maß beschnitten werden. Anders ausgedrückt: Tabs müssen um einen zeitlichen Ablauf und ergonomische Erwägungen ergänzt werden.

Zum Lernen von Python ist die Entwicklung mit KI nach meinem Dafürhalten großartig. Allerdings nur, wenn bereits Entwicklungs-/Programmiererfahrung vorhanden ist. Wer „Learning by doing“ mag, bekommt über die KI enorme Hilfe bezüglich der Syntax, aber auch zur Strukturierung von Code oder Umsetzung kleinerer Bausteine.

Ganz ohne Vorkenntnisse ist ChatGPT jedoch ein zweischneidiges Schwert. Die KI suggeriert nämlich, viel Ahnung zu haben und sich sicher zu sein – und liefert dann doch ständig Anfängerfehler oder gar völligen Unsinn ab. Das will auch erstmal erkannt werden.

Weitere Erkenntnisse

Interessant wird es aber vor allem beim Umgang mit ChatGPT. Einer der wichtigsten Punkte: Man sollte immer im Kopf haben, dass die KI auf alten Daten basiert – wenn es um konkrete Versionen und Abhängigkeiten geht, ist das plötzlich sehr relevant.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Was die Prompts betrifft, nimmt ChatGPT eingehende Befehle und Anfragen – naturgemäß – sehr wörtlich. Menschliche Selbstverständlichkeiten darf man nicht erwarten. „Tabs-Wiederherstellung? Kein Problem! … Ach, da sollen auch noch die Webseiten in den Tabs mit geladen werden? Konnte ich ja nicht wissen!“

Auch lohnt es sich, nach weitgehend atomaren Funktionen zu fragen, also lieber „open urls in tabs“ und „name tabs after the loaded url“ als beide Wünsche in einer Anfrage. Nun, manchmal geht das auch nach hinten los, da ChatGPT eigentlich besser damit klar kommt, neuen Code zu schreiben, als bestehenden Code zu modifizieren. Dennoch helfen einfachere Anfragen im Allgemeinen eher.

Apropos: Eine meiner Lieblingslektionen ist tatsächlich, dass ChatGPT gerne mal neuen Code in Deklarationen und Aufrufen anhängt, obwohl er zwischendrin eingefügt werden müsste. Zwar führt das oft zu aussagekräftigen Fehlermeldungen, aber wenn man diese Marotte kennt, erspart das einigen Frust.

Irgendwie sympathisch ist, dass ChatGPT wie auch menschliche Schöpfer massiv nach dem Trial-and-Error-Prinzip arbeitet – wenn auch mit dem unsympathischen Zug, bei jedem Versuch zu versichern, dass es jetzt aber auch wirklich richtig wird. Es lohnt sich also durchaus, der KI auch zigmal hintereinander zu sagen „Geht nicht, mach es besser.“ und auf Korrekturen zu hoffen.

Das Wichtigste zum Schluss – auch wenn es eigentlich klar sein sollte: ChatGPT hat Probleme mit Logik und ist (Gott sei Dank) nicht kreativ. Das Umsetzen klar definierter Funktionen beherrscht ChatGPT ziemlich gut, für die Ablauflogik scheint die menschliche KI aber noch gebraucht zu werden.

Fazit

Nach Abschluss des Projekts habe ich den Gegentest gemacht und ChatGPT – nun auch in der Version 4 – einfach mal nach einem kompletten Browser mit besagten Features gefragt. Antwort in beiden Versionen: Ziemlich komplexe Aufgabe, folgende Schritte könnten ein Einstieg sein – gefolgt von internen Fehlern. Die Hauptfrage war, ob sich mit ChatGPT ohne Vorwissen komplette komplexe Anwendungen erstellen lassen. Die Antwort ist eindeutig: Nein.

Grundkenntnisse in der Entwicklung müssen vorhanden sein und das Maß an Komplexität hat enge Grenzen, auch weil sich Code-Bestandteile nicht wirklich verwalten lassen. Die Zusammenarbeit mit ChatGPT ist die ersten Stunden (und Erfolge) lang wirklich sehr spaßig und produktiv, dann wird es zunehmend zu einem entnervenden Gespräch mit einem bockigen Kleinkind.

Zumindest bei mir hat dabei irgendwann auch die Sorgfalt nachgelassen. Anfangs habe ich den ausgegebenen Code noch inspiziert, später nur noch Fehlermeldungen übergeben, ein paar Mal auf die „Continue generating“-Taste geklickt, den Code als Skript gespeichert, getestet und die Schleife dann erneut begonnen.

Spätestens, wenn ChatGPT viermal hintereinander vermeldet „Oh, ABC war falsch, es müsste natürlich XYZ heißen.“ und dann korrigierten Code zurückliefert, der ABC unangetastet lässt, dafür aber an anderer Stelle 123 nach 456 ändert … spätestens dann muss Herrchen mal kurz in die Garage und irgendwas Reales machen. Am besten mit einem großen Hammer.

ChatGPT ist definitiv noch sehr weit weg, irgendeinem Entwickler den Job zu kosten. Aber es hat durchaus das Potenzial, sehr viele Hobby-Entwickler und -Projekte hervorzubringen und ist, richtig eingesetzt, ein fantastisches Werkzeug. Auch wenn es mich bisweilen zur Weißglut trieb.

(ID:49581200)