Der Hype um ChatGPT hat breite Wellen geschlagen. Werden neue KI-Tools Entwickler:innen in Zukunft ersetzen? Tatsächlich sind KI-gestützte Tools in der Software-Entwicklung nicht neu. In diesem Beitrag stellen wir bekannte KI-Tools, ihre Einsatzgebiete, Möglichkeiten und Grenzen vor.
Ist ChatGPT ein brauchbares Tool für Developer:innen?
Die Antwort lautet – wie so oft: Es hängt davon ab. ChatGPT ist nicht zielgerichtet auf Development Prozesse ausgelegt. Für kleinere Recherchen kann es zwar hilfreich sein, aber es gilt einige Fallstricke zu berücksichtigen:
- Die Trainingsdaten enden im Jahr 2021.
- Die Herkunft der Antworten ist schwer absehbar.
- Antworten sind nicht reproduzierbar.
Zwar kann ChatGPT auf Zuruf einen Algorithmus entwerfen oder eine Funktion in verschiedene Programmiersprachen übersetzen, aber die Bewertung der Qualität einer Antwort setzt Expertise voraus, denn die Gefahr falscher oder ungenauer Antworten ist recht hoch: Letztlich berechnet das Modell, die Wahrscheinlichkeit der Abfolge von Worten – weder die Richtigkeit der Antwort noch, die der zugrundeliegenden Daten sind technisch einfach sicherzustellen. Aus diesen Gründen hat Stack Overflow, ein bekanntes Forum für Entwickler:innen, den Einsatz von ChatGPT vorerst gebannt.
Welche KI-Tools gibt es für Entwickler:innen?
Wie bereits erwähnt: Die Verwendung von KI-Tools in der Software-Entwicklung ist nicht neu. Seit einigen Jahren entwickeln diverse Anbieter KI-gestützte Assistenten, Debugging- und Automatisierungstools. Besonders KI-gestützte Coding-Assistenzen sind sehr präsent und mit ChatGPT vergleichbar.
Was machen KI-gestützte Programmier-Assistenten?
Prominente Anbieter sind TabNine, GitHubs Copilot und Amazons CodeWhisperer. TabNine gehört mit dem 2021 eingestellten Start-up Kite zu den Pionieren in diesem Bereich.
Aktuell leisten KI-Tools vor allem Autovervollständigung an. Das heißt, sie fügen entsprechend der Eingaben der Entwickler:innen, einzelne Zeilen bis hin zu ganzen Codeblocks und Funktionen ein. Im Gegensatz zur klassischen Vervollständigung mit Codeschnipseln, basierend auf vordefinierten Mustern, interpretieren KI-Tools die Eingabe und demnach die Absicht der Entwickler:innen und generieren basierend darauf Ihre Vorschläge. Das kann vor allem Zeit sparen und vereinfacht redundante oder simple Arbeitsschritte.
Hier ein einfaches Beispiel mit Githubs Copilot und Visual Studio Code, das KI-Tool analysiert den Kommentar und schlägt eine simple Funktion vor:
Der Hauptunterschied zu ChatGPT ist die Integration und das zielgerichtete Training für den Einsatz in der Software-Entwicklung. Vergleichbar hiermit hat Microsoft Mitte März Microsoft 365 Copilot angekündigt. Das KI-Tool soll das GPT Sprachmodell in das Microsoft 365 Ökosystem integrieren. Kurz zuvor war bereits Microsoft Dynamics 365 Copilot angekündigt, das sich in CRM- und ERP-Systeme integriert.
Wie unterscheiden sich die Tools?
Copilot basiert aktuell auf GPT-3 und soll mit Copilot X auf GPT-4 setzen, also das gleiche Sprachmodell, das auch bei ChatGPT zum Einsatz kommt. Die neue Version soll weitere Features integrieren, beispielsweise sollen basierend auf einer Texteingabe à la ChatGPT automatisierte Verbesserungen des Codes vorgeschlagen werden.
TabNine wurde 2012 gegründet. Das KI-Tool grenzt sich vor allem durch individualisiertes Training ab. Das KI-Modell kann anhand der eigenen Codebase trainiert werden und soll sich so dem Projekt und Coding-Style anpassen.
Amazons CodeWhisperer ist im April 2023 veröffentlicht worden. Das KI-Tool umfasst einen ähnlichen Funktionsumfang wie die Konkurrenten und ist stark in das weitverbreitete AWS-Ökosystem integriert. Demnach soll es besonders bei der Verwendung und Integration in das Amazon Ökosystem die Qualität und Sicherheit des Codes gewährleisten. Zum Funktionsumfang gehören außerdem Sicherheitsscans, die das Projekt auf bekannte Sicherheitslücken hin prüfen.
Die Grenzen der KI-Assistenten
Fehlerfrei sind die Assistenzen sicher nicht. Besonders bei komplexeren Problemen und Projekten stoßen die KI-Tools an ihre Grenzen. So betont der Gründer des 2021 eingestellten Start-ups Kite, dass das Auslesen der Struktur von Programmiercode eine Herausforderung sei.
Neben der Frage der Machbarkeit stellen sich auch Fragen der Lizenzierung und Haftung, besonders bei sicherheitskritischen Anwendungen. Bereits Ende letzten Jahres wurde eine Sammelklage gegen GitHubs Copilot eingereicht. Das KI-Tool übernehme mitunter Programmiercode und verletze damit Lizenzen.
Mehr als nur assistieren: bessere Automatisierung
Neben KI-gestützten Assistenten greifen immer mehr Tools auf die eine oder andere Weise auf KIs zurück. Ein prominentes Beispiel ist Synk, das unter anderem auf die DeepCode Engine setzt, um Sicherheitslücken durch automatisierte Scans aufzudecken. Auch KI-gestützte Firewalls sind bereits seit langem ein Thema. Die KI-unterstützte Erkennung hilft dabei, auffälligen Traffic zu erkennen und zu unterbinden.
Die Beispiele zeigen, dass in der Verbindung von automatisierbaren Workflows und KI-gestützter Mustererkennung viele Potenziale enthalten sind. Beide Aufgaben sind von Menschen nicht stemmbar. Gerade hier können KI-Tools helfen, Entscheidungsträger:innen mit besseren und relevanten Informationen zu versorgen.
Unser Fazit: Wir behalten unser Development-Team
KI-gestützte Tools können Arbeitsprozesse in der Software-Entwicklung beschleunigen und verändern. Dennoch sind die Expertise sowie das domänenübergreifende Wissen von Entwickler:innen unverzichtbar. Die Tools helfen, Automatisierung besser und schneller zu gestalten und können effizientere Arbeitsprozesse ermöglichen.
Die Vereinfachung von Prozessen kann in Zukunft auch das Arbeiten im Team deutlich vereinfachen, denn die Verbindung von No-Code Interfaces und KI-gestützten Tools kann langfristig neue Möglichkeiten schaffen, im Team zu kooperieren.
Letztlich ist ChatGPT eine Referenzimplementierung, ob GitHubs Copilot oder Microsofts 365 Copilot – die Möglichkeiten der Implementierung sind vielfältig und durch den Zugang zu diesen APIs entstehen neue Möglichkeiten für spannende digitale Produkte.