Neue Ära der Softwareentwicklung: GitHub CoPilot X und GPT-4

6 Min. Lesezeit
17. Mai 2023

Entdecke die Zukunft der Softwareentwicklung! Erfahre in diesem Artikel, wie GitHub CoPilot X und GPT-4 die Branche revolutionieren. Von kontextbasierten Vorschlägen bis zur revolutionären Kommandozeile - diese bahnbrechenden Technologien verändern die Art und Weise, wie Software entwickelt wird. Tauche ein in die Welt der künstlichen Intelligenz und erlebe die Möglichkeiten, die GitHub CoPilot X und GPT-4 bieten, um qualitativ hochwertigen Source Code zu erstellen und effizienter zu arbeiten.

GitHub CoPilot X und GPT-4 sind bahnbrechende Technologien, die die Softwareentwicklung revolutionieren werden. In diesem Artikel werden fünf aufregende Neuerungen vorgestellt, mit denen GitHub CoPilot X und GPT-4 die Art und Weise, wie Software entwickelt wird, nachhaltig verändern. GitHub CoPilot X ist ein fortschrittlicher Pair Programmer, der auf künstlicher Intelligenz basiert und auf OpenAIs GPT-4-Modell aufbaut. Diese innovative Kombination eröffnet Entwicklern und Entwicklerinnen völlig neue Möglichkeiten, hochwertigen Source Code zu schreiben, zu verwalten, zu testen und zu verstehen. Darüber hinaus wird auch die Interaktion mit der Kommandozeilenoberfläche (CLI) revolutioniert. Im Folgenden werden die fünf Neuerungen im Detail vorgestellt, die die Softwareentwicklung mit GitHub CoPilot X und GPT-4 verändern werden.

Was ist GitHub CoPilot X?

GitHub CoPilot X ist dein zukünftiger Pair Programmer, der rein auf künstlicher Intelligenz basiert. Zugrunde liegt eine frühe Adaptierung von OpenAIs GPT-4 (Generative Pre-trained Transformer 4) Modell. Mit GitHub CoPilot X werden allen Entwickler*innen bisher ungeahnte Möglichkeiten verschafft, um noch besseren Source Code zu schreiben, ihn zu verwalten, zu testen, zu verstehen, zu lernen und darüber hinaus wird auch die Command Line Interface (CLI) Interaktion revolutioniert.

1. Kontextbasierte Vorschläge

Der große Vorteil von GitHub CoPilot X zu traditionellen Suchmaschinen und Foren ist, dass die künstliche Intelligenz den aktuellen Kontext versteht und richtig einordnen kann. Aus der Endung und dem Quellcode der gerade geöffneten Datei lässt sich die Programmiersprache ableiten. Darüber hinaus wird aus allen bisherigen Eingaben und Source Code Schnipsel in Kontext aufgebaut, der in allen Antworten seinen Einfluss findet. Ebenso lässt sich GitHub CoPilot X mit konkreten Anweisungen ausführen. In dem unten angeführten Beispiel soll der Status einer bestimmten Webseite mit dem .NET HttpClient ausgelesen werden. Dabei wird weder die konkrete Adresse angegeben noch was der richtige Status ist. Die künstliche Intelligenz erkennt dabei selbst, dass es sich um die https://www.acp-digital.com Webseite handelt und das 200 der korrekte HTTP Status Code (HttpStatusCode.OK) ist. Darüber hinaus wird die Ausgabe in der Konsole als verstehbare Variante erstellt.

Abbildung 1: C# Quellcode zur GET Abfrage einer Webseite.Abbildung 1: C# Quellcode zur GET Abfrage einer Webseite.

 Dabei spielt es keine Rolle, welches Themengebiet die Frage beinhaltet. Ebenso kann die künstliche Intelligenz die Frage auch verstehen, wenn Tippfehler enthalten sind. Im nächsten Beispiel wird ein Ceaeser Verschlüsselungsalgorithmus verlangt. Tatsächlich wäre die richtige Formulierung Ceasar. Nichtsdestotrotz liefert Github CoPilot X die gewünschte Funktion und gibt das Ergebnis als neue Zeichenkette zurück.

Abbildung 2: Quellcode für den einfachen Caesar Verschlüsselungsalgorithmus

Auch die Programmiersprache selbst spielt keine zentrale Rolle. Github CoPilot X unterstützt eine Vielzahl an Programmiersprachen, die immer weiter ausgebaut werden. Offiziell gibt es allerdings keine Liste von unterstützen Sprachen. Durch das verwendete Large Language Model (LLM) ist es auch nicht relevant, in welcher natürlichen Sprache die Texte eingegeben werden. Dass kann in Englisch oder Deutsch und vermutlich auch in jeder anderen Sprache genutzt werden.

GitHub CoPilot X ist Stand Anfang 2023 noch im Status Technical Preview und der Zugang wird über eine Warteliste begrenzt. Die Version ohne X, GitHub CoPilot ist seit Oktober 2021 veröffentlicht und nutzbar. Als Basis dient hierfür die ältere Version GPT-3.

2. Kontextbasierte Konversationen 

Mit GitHub CoPilot X soll es möglich sein, Konversationen innerhalb der Entwicklungsumgebung (IDE) zu führen, um verschiedene Ergebnisse zu erhalten. Das kann einerseits, wie im unten angeführten Beispiel sein, dass für einen selektierten Quellcodebereich eine Menge an Unit Tests verfasst werden soll, andererseits kann GitHub auch den Quellcode in natürlicher Sprache beschreiben und erklären, was der Sinn und Zweck der Implementierung ist.

Abbildung 3: Beispiel einer kontextbasierten Konversation

Ebenso soll es möglich sein, dass Fehler im Quellcode von GitHub CoPilot automatisch gelöst werden können sollen. Ob es sich dabei nur um Syntaxfehler oder auch Logikfehler handeln kann, ist aktuell unklar.

Die Warteliste für kontextbasierte Konversationen findet ihr hier.

3. Pull Requests neu gedacht 

GitHub CoPilot X integriert sich nicht nur in die Entwicklungsumgebung, sondern auch vollständig in den Entwicklungsprozess und Ablauf auf GitHub. Dabei soll es möglich werden, dass Pull Requests mehr oder weniger automatisch eine Geschichte erzählen. Dabei geht es weniger um Märchen, sondern was genau der Pull Request bewirkt und welche Auswirkungen er auf den Ziel-Branch hat. Dazu werden automatisierte Beschreibungen im Pull Request erstellt.

Ebenso können automatisch Testfälle erkannt und infolgedessen neue Unit Tests als eigene Commits zum aktuellen Branch hinzugefügt werden.

Wem das alles noch nicht genug ist, dem kann GitHub CoPilot X auch die Code Reviews abnehmen und über das GPT Modell Verbesserungsvorschläge unterbreiten. Genau genommen sollen die unterbreiteten Vorschläge in einen nächsten Schritt direkt von CoPilot X behoben werden können.

Abbildung 4: Verbesserungsvorschlag durch GitHub CoPilot X

Mehr zu der Unterstützung für Pull Requests findet ihr unter diesen Link.

4. Kontextbasierte Dokumentation

Dokumentationen sind sehr oft umfangreich und die passenden Informationen zu finden kann dabei gut und gerne viel Zeit in Anspruch nehmen. Mit CoPilot X soll es möglich sein, mit der Dokumentation zu interagieren. Im Grunde durchsucht man die Dokumentation nicht mehr manuell, sondern stellt die offene Frage in einer Eingabemaske. Daraus wird eine passende Antwort, sofern gefunden, erstellt und ausgegeben.

Abbildung 5: Beispielhafte Einstellung des aktuellen Wissenstands über das Thema.

Dabei kann auch der eigene Wissenstands über das Produkt bei der Beantwortung der Frage miteinbezogen werden. Entwickler*innen mit wenig Erfahrung bekommen eine andere, umfangreichere Antwort als langjährige Profis auf dem Gebiet der Fragestellung. Im Grunde kann man dieses Feature verstehen wie eine Interaktion mit ChatGPT, nur dass es in der aktuellen Dokumentation stattfindet und daraufhin abgestimmte Antworten erstellt.

Mehr zur kontextbasierten Dokumentation und den weiteren Möglichkeiten findet ihr hier.

5. Revolutionierende Kommandozeile (CLI) 

Die Eingabe über eine Kommandozeile (engl. Command Line Interface, kurz CLI) kann für viele Benutzer*innen, gerade zu Beginn, eine große Herausforderung sein. Es gibt keine grafische Benutzeroberfläche, sondern nur reine Texteingabe. Dabei ist es unumgänglich sämtliche Befehle und Argumente zu wissen, um das gewünschte Ergebnis zu erzielen. GitHub versucht den Arbeitsablauf mit CoPilot für CLIs deutlich zu vereinfachen und einer breiteren Masse zugänglich zu machen.

Dabei interagieren die Benutzer*innen nicht mehr auf der Ebene von eindeutigen Befehlen mit der Kommandozeile, sondern sie schreiben ihr gewünschtes Ergebnis mit natürlicher Sprache. In dem nachfolgenden Beispiel soll auf einer Videodatei (input.mp4) ein Wasserzeichen mit dem Werkzeug ffmpeg angebracht werden.

Abbildung 6: Beispielanwendung von CoPilot für CLI

Dabei wird den Benutzer*innen der Command vorgeschlagen und sie bekommen direkt eine Erklärung über alle Argumente, die verwendet werden und welchen Zweck diese haben. Danach hat man die Möglichkeit, das Kommando auszuführen, es zu verändern oder abzubrechen. Ähnlich wie bei den bisherigen CoPilot Anwendungen besteht auch hier bei der Änderung der Query der Kontext zur ursprünglichen Anforderung und man kann weitere Funktionalitäten hinzufügen oder bestehende abändern.

 Mehr über CoPilot für CLI findet ihr hier.

Fazit

Durch die Large Language Modelle (LLM) von OpenAI ist für viele Benutzer*innen künstliche Intelligenz zum Ersten mal richtig greifbar geworden (siehe ChatGPT). Durch den Ansatz über Konversationen mit verschiedene Tools Aufgaben lösen zu können, entsteht auch ein praktischer Nutzen in der täglichen Arbeit abseits der Forschung. In meiner Einschätzung hat GitHub CoPilot X ein sehr gutes Potenzial, der Pair Programmer zu werden, den man sich immer gewünscht hat. Einerseits ist er immer anwesend, andererseits hat er durch das LLM einen unfassbar großen Schatz an Wissen, mit dem er einen weiterhelfen kann.

Nichtsdestotrotz ist es unumgänglich ein breites und gutes Wissen in der jeweiligen Technologie zu haben. Die künstliche Intelligenz bietet einen viele Möglichkeiten und vereinfacht noch mehr, aber bei manchen Antworten und Vorschlägen ist Vorsicht geboten. Bei sicherheitskritischen Fragen haben wir sehr oft beobachtet, dass der vorgeschlagene Quellcode viele Sicherheitslücken beinhaltet hat oder gar nicht zur eigentlichen Anforderung passte. Deswegen empfehlen wir immer, einen gründlichen Blick auf alle Quellcodes zu legen, die erstellt wurden.

Abgesehen vom technologischen Fortschritt, müssen diese auch immer im rechtlichen Rahmen stattfinden. Als weiterführende Lektüre zum Thema GitHub CoPilot und offene rechtliche Fragen ist diese Sammelklage von Ende 2022 interessant. Weitere Open-Source-Experten äußern sich in diesen Beitrag darüber, dass rechtliche Fragen noch umstritten sind.