GitHub Copilot - Potentielle Programmierhilfe durch AI
AI ist auf dem Vormarsch und auch als Entwickler kann man davon mitunter profitieren. An dieser Stelle übrigens der Hinweis, dass ich nicht thematisieren werde wann Software komplett von AI geschrieben wird und man ohnehin keine Entwickler mehr braucht, wer nach diesen Inhalten sucht ist hier falsch.
Heute geht es um den GitHub Copilot, ein interessantes Projekt, welches euch Entwicklungsarbeit abnehmen soll. Das Tool, welches aktuell via Visual Studio Code also Technical Preview verfügbar ist, wurde mit einer großen Menge an Code gefüttert und baut basierend darauf Vorschläge für euren Code. Vor allem im JavaScript und Python Bereich kann man hier einiges erwarten, andere Sprachen haben da mitunter noch ein paar mehr Probleme.
Vereinfacht gesagt analysiert das Tool Open Source Code und erstellt damit eine Datenbank von Vorschlägen. Während der Entwicklung versucht das Tool den Kontext eures Codes zu verstehen, welchen ihre durch Kommentare deutlicher machen könnt und liefert dann Vorschläge. Neben den global verfügbaren Vorschlägen, lernt das Tool auch aus eurem Code. Schreibt ihr einige Zeilen und braucht später ähnliche Code Blöcke, wird das Tool vermutlich passende Vorschläge liefern.
Das Ganze geht über das eigentliche Auto Complete hinaus, nicht nur was die Quantität angeht, denn es werden mitunter ganze Methoden vorgeschlagen, auch was die Qualität angeht. Durch die Kombination von Open Source Code Analyse, dem erkennen des Kontexts und dem Einbeziehen eures Code, gibt es potentiell wesentlich passendere Vorschläge, im Vergleich zu statischen Tools.
GitHub Copilot ist aktuell eine Technical Preview, diverse Sprachen fehlen noch und einiges muss noch getan werden. Der Ansatz als solcher ist aber spannend und hat auf jeden Fall Potential. Problematisch kann es natürlich werden wenn derartige Tools genutzt werden, um ausschließlich Copy & Paste Aktionen von Stack Overflow zu beschleunigen. Hier kann ich aber nur sagen, wer aktuell ordentlichen Code schreibt und selber denkt, wird es vermutlich auch mit derartigen Tools tun. Wer hingegen jetzt schon blind online kopiert, wird sich wohl nicht ändern, aber vielleicht sogar bessere Programme produzieren. Auch wenn ich eine derartige Art der Entwicklung mit jeder Taste meiner Tastatur verneinen möchte.
Da ich selbst weder mit JavaScript, noch mit Python aktiv entwickle habe ich das Tool noch nicht selber ausprobiert, aber Videos aus dem Dart / Flutter Kontext angeschaut. Dort gibt es wie erwähnt noch größeren Verbesserungsbedarf, sodass ich das Ganze erst einmal weiter beobachten werde. Falls ihr Interesse habt oder einfach mehr Informationen haben wollt, folgt einfach den Related Links, dort habe ich alles wichtige für euch hinterlegt.