Generative KI vereinfacht das Leben in vielerlei Hinsicht. Man kann Texte schreiben lassen, neuerdings auch Videos generieren und es ist sogar möglich, mit den KIs zu sprechen und das Gesprochene in Echtzeit übersetzen zu lassen. Nicht zuletzt ist es auch möglich, einfachen und komplexen Code zu generieren, ohne über Programmierkenntnisse zu verfügen. Ein kurzer Erfahrungsbericht.
ChatGPT
Seit mindestens Ende 2022, als OpenAI ChatGPT vorstellte und es für alle frei zugänglich machte, ist künstliche Intelligenz bei vielen Menschen kein Fremdwort mehr. ChatGPT unterstützt über 50 Sprachen und ist in mehr als 160 Ländern verfügbar. Es kann Code-Schnipsel in Programmiersprachen wie Python, C#, Java, JavaScript, PHP, etc. bereitstellen.
Beispiel eines Makros
In Excel habe ich einen Kalender, bei dem eine Zahl geändert werden muss, um den nächsten Monat anzuzeigen und das Blatt zu drucken. Um den gesamten Kalender als PDF zu speichern, sind mehrere wiederholende Schritte erforderlich. Diese einfachen Tätigkeiten können durch ein von generativer KI erzeugtes Makro automatisiert werden.
Komplexe Webapplikationen mit ChatGPT ohne Programmierkenntnisse – geht das?
Die Idee war da, nun galt es diese umzusetzen. ChatGPT wurde genau zur richtigen Zeit vorgestellt. Das Design für die Applikation hatte ich auch schon.
Wie fange ich jetzt an, den Code für die Webapplikation zu schreiben? Welche Programmiersprache verwende ich überhaupt, Python oder Javascript? Diese Fragen habe ich ChatGPT gestellt und es gab mir genaue Antworten, wie ich ein Projekt in Visual Studio Code starte und welche Frameworks und Bibliotheken ich für mein Vorhaben installieren und verwenden sollte. Ich war fasziniert und begann Fullstack – machte Backend und Frontend gleichzeitig. Keine Komponenten, nichts. Nur eine einzige Datei. Ich dachte, ich wäre auf dem richtigen Weg. ChatGPT hatte nichts erwähnt. Der Code (JavaScript) in einer Datei wurde sehr lang. Ich hatte Zweifel, ob ich so weitermachen soll, oder ob das überhaupt sinnvoll war und habe mich dann entschieden, einen Kurs auf Coursera.org über Fullstack Development zu besuchen. Dieser gab mir dann Ideen über die Softwarearchitektur – Monolith und Microservice. Entsprechend habe ich im nächsten Schritt den Code in die einzelnen Komponenten zerlegt, um einer Monolith-Architektur gerecht zu werden. Auch ChatGPT war damit einverstanden und nannte sogar Gründe (z.B. wegen der Lese- und Wartbarkeit der Applikation) um diesen Weg einzuschlagen.
Aktuell wird die Applikation immer komplexer und es wird immer schwieriger, komponentenübergreifend die Logiken miteinander zu verknüpfen. ChatGPT benötigt dafür auch viel genauere Prompts, damit es versteht, was genau die Anforderung ist.
Einige Dinge die ich mithilfe von ChatGPT gelernt habe:
- Heute entwickelt man Cloud-native.
- Es gibt unterschiedliche Arten Datenbanken, für mein Projekt nutze ich MongoDB.
- Damit die Speicherung in einer Datenbank funktioniert, braucht es Modelle bzw. Schemas.
- Ein Projekt ist in mehreren Komponenten unterteilt und wenn alles innerhalb eines Projekts installiert und entwickelt wird, dann ist es eine Monolith-Architektur.
- Man arbeitet mit unterschiedlichen Umgebungen: Entwicklungs-, Test- und Produktivumgebung.
- Express.js – Ein Backend-Framework für Webapplikationen
- Komponenten und Hooks, die das Frontend ausmachen
- Das Styling wird mithilfe von CSS Files oder TailwindCSS gemacht
- Kontexte – Sie lassen sich über die gesamte Applikation wiederverwenden
- Modelle oder Schemas – werden benötigt, um die Datenbankstruktur zu definieren
- GitHub – hilft mit der Versionierung
- NextAuth.js kann für die Authentifizierung benutzt werden
- Die Erstellung eines GPT und hochladen der Komponenten, hilft ChatGPT die Zusammenhänge zu verstehen
Gedanken und Limitationen von ChatGPT
- ChatGPT klärt nicht richtig über sichere Softwareentwicklung auf. Es ist, vor allem in der heutigen Zeit ein wichtiger Aspekt, der nicht ausser Acht gelassen werden darf.
- Mein Verständnis über den Code und was welcher Teil tut, wird von Zeit zu Zeit besser.
- Wie fügt man Konsolenlogs ein?
- Manchmal bestehen Zweifel über die Richtigkeit der Antworten der generativen KIs, dann wird aber recherchiert.
Fazit
Generative KIs wie ChatGPT bieten unglaubliche Möglichkeiten, auch ohne tiefgehende Programmierkenntnisse komplexe Softwareprojekte zu realisieren. Der Weg dorthin ist zwar zeitaufwendig und erfordert einiges an Lernbereitschaft, aber die Unterstützung durch solche Tools kann den Entwicklungsprozess erheblich erleichtern und beschleunigen.
Weiterführende Links: