Seit einigen Wochen verwende ich jetzt GitHub-Copilot, ein kleines Fazit.
Ich kann mich noch gut an meine ersten Programmiererfahrungen erinnern. Amiga-Basic, QBasic und Turbo Pascal. Hier gab es noch nicht einmal eine Autovervollständigung, Befehle musste ich nachschlagen, im Handbuch oder in der Online-Hilfe. War damals kein großes Thema, die Sprachen waren nicht übermäßig komplex.
Schwieriger wurde es mit dem Umstieg auf Windows. Hier hatte ich das Vergnügen, mit Visual C++ 5.0 arbeiten zu können, ohne Autovervollständigung. Da waren Delphi und Visual Basic schon weiter.
Ohne solche Hilfestellungen zu entwickeln, ist kaum noch vorstellbar. Das liegt auch daran, dass die Projekte allesamt komplexer geworden sind. Es gibt viele Frameworks, welche eingebunden werden und dazu kommt ein Zoo an Programmiersprachen, zwischen welchen ich ständig hin und her wechsele.
Programmieren ist inzwischen mehr eine Art Recherche geworden, wie irgendwas mit Framework X in Programmiersprache Y umgesetzt werden kann oder wie Komponente Z funktioniert. Merken kann ich mir dauerhaft das wenigste und ich bin da froh über jedes Helferlein.
Copilot, Programmiersprachen und Preis
GitHub Copilot gibt es schon eine Weile, bisher habe ich das Thema komplett ignoriert. Da es aber eine unverbindliche Testphase von 60 Tagen gibt, habe ich mir die Sache nun aber doch mal angeschaut. Genutzt habe ich die Software für mein Nebengewerbe. Hier entwickeln wir unsere Software mit C#, dazu kommt PHP, Java-Script und HTML.
Grundsätzlich ist die Zeit knapp und jede Hilfe bei der Programmierung und Zeitersparnis ist mir willkommen. Preislich liegt der Preis bei 10 Dollar im Monat, bzw. 100 Dollar im Jahr.
Unterstützte IDEs
Copilot ist ein Plugin für die IDE. D.h. die IDE muss explizit unterstützt werden. Visual Studio, Visual Studio Code, die Jetbrains-IDEs werden ohne Probleme unterstützt. Eclipse, Sublime-Text gibt es ebenfalls Plugins, welche aber von Drittentwicklern programmiert werden.
Ich selbst nutze, Visual Studio (Code) und diverse Jetbrains-Produkte. Passt also.
Was geht gut, was nicht?
Brechen wir die Funktion von Copilot herunter, ist es eine bessere Codevervollständigung. Im Gegensatz zur Standardvervollständigung, erkennt die KI den Code drumherum und autovervollständigt nach besten Wissen und Gewissen.
Das klappt mal gut, mal schlecht. Besonders gut funktioniert es bei Boilerplate-Code. Schreibe ich Properties im Model in C#, erkennt er die spezielle Syntax meines verwendeten MVVM-Frameworks und bietet automatisch die richtige Lösung an. Ein „StringShortenConverter“ für WPF ist schnell erstellt. Kein Wunder, sowas wurde bereits hundertfach programmiert.
Die Vorschau wird als grauer Text eingeblendet. Mit Tab kann ich den Vorschlag übernehmen, mit weiteren Tastenkombinationen kann zwischen Vorschlägen hin und her wechseln. Hat die KI gerade einen guten Lauf, muss ich nur mit Tab bestätigen und Zeile für Zeile Code entsteht wie von Geisterhand.
Bei anderen Sachen greift die KI auch gerne mal daneben. Es werden Funktionen und Methoden vorgeschlagen, welche es nicht gibt. Der Kontext der Vorschläge scheint sich auch eher auf aktuelle Datei zu beziehen, als auf das gesamte Projekt.
Aus meiner Beobachtung heraus, scheint er mit gewissen Sprachen besser klarzukommen als mit anderen. Bei Java-Script habe ich das Gefühl, dass es hier deutlich besser funktioniert als bei C#. Aber das kann auch Einbildung sein. Die Vorschläge bringen auch eine gewisse Unruhe in den Code, weil sich der Quelltext durch die Vorschläge verschiebt, das ist zuweilen etwas nervig.
Dazu gibt es die Möglichkeit, sich komplette Funktionen und Klassen vorschlagen zu lassen. Hier kann man anschließend aus verschiedenen Implementierungen auswählen. Fand ich bisher nicht wirklich hilfreich, die Funktion.
Kosten vs. Produktivität
100 Dollar im Jahr sind für Einzelentwickler für mich, Firmen zahlen mehr. Ich bin mit Copilot durchaus produktiver und schneller. Gerade bei den langweiligen Standardsachen. Wunder vollbringt die KI derzeit jedoch noch keine. Der derzeitige Stand ist, dass es eine bessere Autovervollständigung ist. Sie erleichtert gewisse Sachen.
Ich habe jedenfalls beschlossen, dass ich dem Ding mal eine Chance gebe und habe das Jahresabo gebucht.
CoPilot X
Die Entwicklung bleibt nicht stehen und mit Copilot X soll eine deutlich verbesserte Variante von Copilot an den Start gehen. Hier soll der Entwickler auch mit der KI chatten können, Code soll sich verbessern lassen und die Vorschläge sollen natürlich noch besser werden. Ich habe mich hier für die Preview in die Warteliste eintragen lassen.
Fazit
Bisher bin ich von Copilot positiv angetan. Eine KI, welche mir langweilige Arbeiten abnimmt. Ich sehe hier noch viel Luft nach oben und bin gespannt auf Copilot X.