Was ist GitHub Copilot?

GitHub Copilot ist ein Werkzeug, das Programmierern bei der Arbeit helfen soll. Während der Code geschrieben wird, liefert Copilot dem Entwickler wie eine Autokorrektur Vorschläge, was als nächstes kommen könnte. So weit ist das nichts Neues, viele Editoren „merken“ sich bereits vorher auftretende Variablen und schlagen diese vor, wenn ein passender Anfangsbuchstabe getippt wird. GitHub Copilot kann aber bedeutend mehr als das! Es basiert auf einer künstlichen Intelligenz von OpenAI, die nicht nur einzelne Wörter vervollständigen, sondern ganze Codepassagen vorhersagen soll.

Erste Tests

Als ich Copilot das erste Mal getestet habe, wollte ich nur ein bisschen herumprobieren und hatte keine großen Erwartungen. Die Installation ging schnell und unkompliziert, indem ich das Copilot Plugin zu meinem Editor hinzugefügt und mich bei GitHub angemeldet habe. Zuerst hat mit überrascht, wie schnell Vorschläge geliefert werden. Bei jeder natürlichen Tipppause hatte ich die Auswahlmöglichkeit den von Copilot vorgeschlagenen Code zu übernehmen. Nachdem ich dann eine Zeit lang programmiert hatte, überzeugte mich nicht nur die Schnelligkeit, sondern auch die Sinnhaftigkeit der Vorschläge. Es ist beeindruckend, wie logische Zusammenhänge erkannt und Variablen richtig (weiter-)verwendet werden. Doch es kann nicht nur der Programmcode weitergeschrieben werden, er kann teilweise auch komplett von Copilot erstellt werden. So kann man einen Kommentar schreiben, der die Funktionalität des Codes beschreibt und Copilot liefert den dazu passenden Code. Das funktioniert nicht mit zu abstrakten Anweisungen, aber dafür relativ gut mit einzelnen Funktionen in einem Programm.

Nach einiger Zeit in Verwendung

Weiterhin ist mir positiv aufgefallen, dass der durch mich geschriebene Code Einfluss auf die gelieferten Vorschläge nimmt. Schreibe ich meinen Code auf Englisch und die Kommentare dazu immer auf Deutsch, passt sich Copilot diesem Stil größtenteils an.

Copilot hat mir vor allem Tipparbeit erspart. Gerade repetitive Passagen, in denen nur wenige Parameter angepasst werden müssen, übernimmt Copilot brillant. Auch lästiges – aber notwendiges – Kommentarschreiben geht durch die bekommenen Vorschläge schneller, wodurch man vielleicht den ein oder anderen Kommentar mehr „schreibt“. Außerdem sind die Codevorschläge immer nach den üblichen Standards formatiert gewesen, wodurch besser Ordnung gehalten werden kann und der Code lesbarer wird.

Des Weiteren lerne ich durch die Vorschläge ständig Neues. Nicht selten habe ich mir eine Lösung in meinem Kopf zurechtgelegt, doch dann hat mich der Codevorschlag auf einen anderen Lösungsweg gebracht. Oder ich habe ein mir relativ unbekanntes Modul genutzt und Copilot hat mir nützliche Methoden und Funktionen in diesem aufgezeigt.

Nachteile und Bedenken

Es gibt jedoch nicht ausschließlich positives über GitHub Copilot zu berichten. Man darf sich auch nicht zu sehr auf die Vorschläge verlassen. Denn auch wenn der Code syntaktisch korrekt vorgeschlagen wird, weiß Copilot (noch) nicht, was man erreichen möchte und gibt deshalb teilweise logisch unstimmige Vorschläge, die wenn man sie einmal zu viel ohne nachzudenken übernommen hat, schwierig zu behebende Fehler produzieren können. Demnach ist es kein „Kopf ausschalten und losschreiben“-Tool, sondern lediglich eine Unterstützung.

Vielleicht sogar eine zu große Stütze für z.B. Leute, die mit dem Programmieren starten wollen. Sie bekommen dadurch zwar schneller erste Programme geschrieben, aber die Grundstrukturen und -befehle einer Sprache prägen sich deutlich schlechter nachhaltig ein, wenn man die richtige Lösung ständig vorgesagt bekommt.

Ein anderer kritischer Gedanke lautet: „Wird Copilot Programmierern den Job wegnehmen?“ Bei momentanen Entwicklungsstand sicher nicht, dafür ist es noch zu weit von „perfekten“ Problemlösungen entfernt. Es wird weiterhin logisches Verständnis für den Code gefordert. Viel mehr ist der richtige Einsatz von Tools wie GitHub Copilot eine Fertigkeit, die sich Programmierer aneignen können, um effektiver arbeiten zu können.

Schließlich gibt es auch rechtliche Fragen, die noch nicht abschließend geklärt sind: Wie ist das mit dem Urheberrecht an dem erzeugten Code? Was ist, wenn ich nicht möchte, dass Copilot Daten aus meinem Code ausliest und zur Verbesserung seiner künstlichen Intelligenz nutzt? Eindeutige Antworten auf diese Fragen werden vermutlich erst mit der Zeit kommen und bis dahin bleiben ein paar Variablen unbekannt.

Mein Fazit zu GitHub Copilot

Mein persönliches Fazit ist, dass GitHub Copilot mich völlig positiv überrascht hat. Es macht mich produktiver, indem ich weniger Zeit mit Tippen „verschwende“ und zusätzlich lerne ich neue Funktionen kennen. Deshalb ist es wie für mich geschaffen und momentan ein fester Bestandteil meines persönlichen Programmieralltags.