Open-Source-KI hilft bei der Entwicklung Code-Vorschläge durch GitHub Copilot

Von Thomas Joos

Der Dienst GitHub Copilot kann in Editoren von Entwicklern durch KI-Funktionen passenden Code vorschlagen. Dadurch lassen sich Anwendungen sehr viel schneller und komfortabler programmieren. Wir stellen den Service vor.

Copilot kann Vorschläge für neuen Code in Entwicklungsumgebungen unterbreiten und geht dabei weiter als alle bisher bekannten Tools.
Copilot kann Vorschläge für neuen Code in Entwicklungsumgebungen unterbreiten und geht dabei weiter als alle bisher bekannten Tools.
(Bild: GitHub)

GitHub unterstützt Entwicklerinnen und Entwickler in Zukunft mit seinem neuen Dienst Copilot. Eine KI unterbreitet ihnen dabei Code-Vorschläge direkt im Editor, was die Programmierung beschleunigen soll. Auch Anfänger einer Programmiersprache profitieren von Copilot: der Dienst erleichtert das Lernen der jeweiligen Sprache, weil die Vorschläge direkt im vorhandenen Code erscheinen und sich einfach übernehmen lassen.

Nach der Anmeldung am eigenen GitHub-Konto kann der Dienst 60 Tage kostenlos getestet werden.
Nach der Anmeldung am eigenen GitHub-Konto kann der Dienst 60 Tage kostenlos getestet werden.
(Bild: Joos / GitHub)

Für Studierende und nichtkommerzielle Projekte steht GitHub Copilot kostenlos zur Verfügung, andere Entwickler können den Dienst für 10 US-Dollar pro Monat oder für 100 US-Dollar pro Jahr abonnieren. Wer sich mit dem Thema auseinandersetzen will, darf GitHub Copilot 60 Tage kostenlos testen. Allerdings verlängert sich das Abonnement automatisch, sodass frühzeitig daran gedacht werden sollte, den Dienst zu kündigen.

GitHub Copilot und das KI-Modell von OpenAI Codex

GitHub Copilot verwendet das KI-Modell von OpenAI Codex. Dieses unterstützt menschliche Sprache und wurde für die Verwendung von Programmiersprachen optimiert. Dazu haben die Entwickler des Modells auch auf öffentliche Repositories auf GitHub zurückgegriffen. Bereits jetzt unterstützt Copilot zahlreiche Programmiersprachen, darunter Python, JavaScript, TypeScript, Go und Ruby.

Copilot zeigt seine Vorschläge direkt in der IDE an.
Copilot zeigt seine Vorschläge direkt in der IDE an.
(Bild: Joos / GitHub)

Für eine einfachere Arbeit mit Copilot lässt sich der Dienst als Erweiterung in IDEs wie VS Code, Visual Studio, Neovim und JetBrains integrieren. Die Vorschläge unterbreitet die Erweiterung in Echtzeit direkt in der jeweiligen IDE. Entwickler können einzelne oder alle Teile des Vorschlags übernehmen und selbst erweitern. Die KI richtet sich nach dem Stil des Programmierers und des Projektes. Der vorgeschlagene Code ist kein geistiges Eigentum von GitHub oder anderen Entwicklern, kann also bedenkenlos genutzt werden. Der Code gehört dem Entwickler, der ihn durch Copilot in sein eigenes Projekt übernimmt.

Copilot ist eine Hilfe, aber die Vorschläge sind nicht immer sinnvoll

Copilot ist nicht in der Lage, Anwendungen komplett selbst zu programmieren; Entwickler sollten daher nicht zu viel von Copilot erwarten. GitHub übernimmt für die Qualität des vorgeschlagenen Codes keinerlei Garantie. Entwickler sollten sich also nicht vollständig auf den Code verlassen, erhalten aber durchaus vernünftige Vorschläge, abhängig von der verwendeten Sprache.

Obwohl der Code der KI noch nicht perfekt ist, dient sie doch als guter Einstieg in die Materie. Copilot testet die Vorschläge auch nicht, sodass die Funktion nicht immer gegeben ist. Teilweise ergeben die Vorschläge nicht einmal Sinn und es kann durchaus passieren, dass Copilot sich an veralteten Bibliotheken orientiert. Das liegt daran, dass die verwendeten öffentlichen Codebeispiele nicht immer perfekt sind. Das kann Copilot nicht prüfen. Daher schadet es nicht, wenn sich Entwickler mit der Sprache etwas auskennen.

Nach ersten Untersuchungen ist Copilot vor allem bei der Verwendung von Python sehr erfolgreich, weil Entwickler bis zu 40 Prozent des vorgeschlagenen Codes übernehmen. Bei anderen Sprachen liegt die Quote bei etwa einem Viertel von Vorschlägen, die von Nutzern des Dienstes übernommen werden. Dennoch ist Copilot zum Erlernen von Sprachen sinnvoll einsetzbar. Vor der produktiven Verwendung des vorgeschlagenen Codes, sollten Entwickler aber diesen genau prüfen und das Ergebnis testen.

GitHub Copilot lernt vor allem von neuen Bibliotheken. Das heißt, dass die Vorschläge bei neuen Bibliotheken und neu hinzugefügten Sprachen nicht immer so gut sind, wie bei anderen Bereichen. Es dauert einige Zeit, bis die KI auch hier entsprechende Ergebnisse erzielt. Je mehr Beispiele öffentlich zugänglich sind, desto schneller kann Copilot diese verwerten.

Praxis: So arbeitet Copilot am besten

Um mit Copilot zu arbeiten, sollten sich Entwickler auch an verschiedene Vorgaben halten. GitHub empfiehlt, ein Programm in möglichst kleine Funktionen aufzuteilen. Dazu kommen umfassende Dokumentationen und auch Kommentare, die Copilot für neue Vorschläge nutzen kann. Bereits während des Schreibens von neuen Programmen sollten diese Kommentare gesetzt werden. Dann kann Copilot im Rahmen seiner Analyse auch den eigenen Code analysieren und Verbesserungsvorschläge unterbreiten.

Der Entwickler kann einzelne Codezeilen oder den ganzen von Copilot vorgeschlagenen Block akzeptieren oder ablehnen.
Der Entwickler kann einzelne Codezeilen oder den ganzen von Copilot vorgeschlagenen Block akzeptieren oder ablehnen.
(Bild: Joos / GitHub)

Beim Schreiben von Code findet Copilot unter Umständen mehrere passende Vorschläge. Der aktuelle Vorschlag lässt sich einfach per Testendruck übernehmen, zum Beispiel mit der Tabulator-Taste. Stehen mehrere Vorschläge bereit, kann Copilot diese ebenfalls anzeigen. Dazu steht in der IDE über die Copilot-Erweiterung die Option „Open Copilot“ zur Verfügung. Nach der Auswahl dieser Option, blendet die IDE die verschiedenen Vorschläge von Copilot ein.

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

Interessant ist auch die Möglichkeit, Kommentare für die Arbeit mit Copilot zu nutzen. Wenn Entwickler zum Beispiel ein Kommentar in Englisch schreiben, erkennt Copilot das und erstellt in der nächsten Zeile neue Funktionen, wenn in einem Kommentar das gewünscht ist. Allerdings funktioniert das nur zuverlässig, wenn das Kommentar in Englisch geschrieben ist.

Ein Beispiel dafür ist:

//create function that generates a random number

Bei derartigen Funktionen ist Copilot besonders zuverlässig. Auch beim Erstellen von Daten, zum Beispiel mit …

//create array of numbers

… ist Copilot sehr hilfreich. Diese ganzen Funktionen lassen sich auch miteinander kombinieren.

(ID:48540393)