AllInfo

Warum der Copilot von GitHub nicht das Ende der Programmierung ist

Sundry Photography/Shutterstock.com< /figure>

Der Start von Copilot auf GitHub hat in der letzten Woche für einige Diskussionen gesorgt. Copilot gibt vor, “Ihr KI-Pair-Programmierer” die zusammen mit Ihnen arbeitet, um besseren Code zu erstellen.

Copilot wird als Visual Studio Code-Erweiterung verteilt und ist wie eine wesentlich leistungsfähigere Autovervollständigung, die ganze Codeabschnitte ausfüllen kann. Es betrachtet das, was Sie schreiben, und schlägt neue Zeilen oder ganze in sich abgeschlossene Funktionen vor.

Die Einführung von Copilot hat einige Befürchtungen geweckt, dass es die Entwickler irgendwann vollständig ersetzen wird. Wenn es weiß, was Sie schreiben, und vorschlagen kann, was als nächstes kommt, ist es dann nicht das, was einem KI-basierten Entwickler noch am nächsten kommt? Aus diesem Grund ist dies nicht der Fall.

Was ist eigentlich Copilot?

Erstens, es&#8217 ;s hilfreich, um herauszufinden, was Copilot heute ist. Die Vorschauversion basiert auf OpenAI Codex, einem KI-System, das Microsoft von OpenAI erworben hat. Es ist ein leistungsstarker Quellcode-Analysator, der mit Dutzenden von gängigen Programmiersprachen kompatibel ist.

Codex soll verstehen, “wie” Leute benutzen Code. Es bestimmt den Kontext des Codes, den Sie schreiben, und schlägt vor, was als nächstes kommen könnte. Im Gegensatz zur automatischen Vervollständigung einer IDE ist Copilot in der Lage, neue Ausgaben aus dem gelernten Code zu synthetisieren. Es ist nicht nur ein Index von zuvor gesehenem Code.

Werbung

GitHub nennt derzeit einige konkrete Beispiele als wichtige Anwendungsfälle. Dazu gehören die Generierung allgemeiner Funktionen, die automatische Erstellung von Komponententests und die verbesserte Erkennung von Code in APIs und Bibliotheken. Wenn Sie eine gängige API von Drittanbietern integrieren, können Sie mit Copilot beginnen, bevor Sie die Dokumentation gelesen oder einen Textbaustein kopiert haben.

Das System kann auch den Abschluss sich wiederholender . automatisieren Codeabschnitte, z. B. ein Array von Objekten mit ähnlichen Eigenschaften. Sie können die ersten paar manuell schreiben und dann Copilot den Rest des Arrays anhand Ihres Beispiels füllen lassen. Es erinnert an das Herunterziehen von Zellenwerten in Excel.

Wie weit geht Copilot?

Derzeit lautet die Antwort “nicht sehr weit.” Trotz aller “Intelligenz”, “kontextuell” und “Synthesizer” Schlagworte, Copilot hat immer noch einen begrenzten Einblick in Ihre wahren Absichten und was Ihr Code erreichen muss.

Copilot betrachtet beim Berechnen von Vorschlägen nur Ihre aktuelle Datei. Es wird nicht bewertet, wie der Code in Ihrem Programm verwendet wird. Die Interpretation Ihrer Arbeit durch die KI kann sich erheblich von Ihrer eigenen unterscheiden und von Datei zu Datei variieren, selbst wenn sich die wahren Gründe für die Dateien nicht ändern.

GitHub ist auch klar, dass die Ausgabe von Copilot nicht garantiert die “beste” Ansatz oder sogar Code, der funktioniert. Möglicherweise treten Sicherheitsprobleme auf, Zeilen, die alte oder veraltete Sprachfunktionen verwenden, oder Code, der einfach nicht ausgeführt wird oder keinen Sinn macht. Sie müssen jeden von Ihnen verwendeten Copilot-Vorschlag prüfen, um sicherzustellen, dass Ihr Projekt noch kompiliert und ausgeführt wird.

Die wahre Rolle von Copilot im Entwicklungsprozess sollte jetzt etwas klarer werden: Es ist an Hilfstechnologie, die das Alltägliche etwas einfacher machen soll, kein echter Automat. Betrachten Sie es als Kumpel oder Navigator, nicht als allwissende Entwickler, der Ihren Code für Sie schreibt.

Copilot skaliert nicht

Copilot ist am besten, wenn Sie sich von ihm beim Schreiben von Funktionen unterstützen lassen, die häufige Anwendungsfälle lösen. Was es nicht kann, ist, den breiteren Kontext Ihrer Codebasis zu verstehen. Ohne die Fähigkeit, Ihre Absichten wirklich zu verstehen, ist die Reichweite von Copilot begrenzt.

Werbung

GitHub sagt, dass es daran arbeitet, Copilot intelligenter und nützlicher zu machen. Aber bis es in der Lage ist, Ihr gesamtes Projekt zu betrachten, nicht eine einzelne Datei, ist unklar, wie seine Rolle noch erweitert werden könnte. In seinem gegenwärtigen Zustand ist Copilot im Wesentlichen eine verherrlichte Autovervollständigung. Anstatt die Tabulatortaste zu drücken, um die Funktionsnamen der Standardbibliothek automatisch auszufüllen, können Sie Vorschläge für die Funktionen selbst annehmen.

Lösungen für abstrakte technische Probleme gibt es bereits auf Programmierseiten wie Stack Overflow. Copilot reduziert die Zeit, die benötigt wird, um nach einer Frage zu suchen, die Antworten zu überprüfen und den Code zu kopieren und einzufügen. Sie müssen jedoch herausfinden, wie Sie die Lösung in Ihr Gesamtsystem integrieren können, nachdem Sie überprüft haben, dass der Vorschlag von Copilot tatsächlich funktioniert.

Copilot programmiert überhaupt nicht wirklich. Es betrachtet, was Sie geschrieben haben, leitet daraus ab, was Sie möglicherweise versuchen, und versucht, aus den gelernten Lösungen etwas Passendes zusammenzustellen. Copilot arbeitet für Sie, nicht umgekehrt. Es ist nicht in der Lage, kreativ zu denken, eine übergeordnete Architektur vorzuschlagen oder ein zusammenhängendes System zu produzieren. Jeder Vorschlag ist vollständig in sich abgeschlossen und wird ausschließlich aus dem Code abgeleitet, der ihn unmittelbar in der Quelldatei umgibt.

Nach eigenen Angaben von GitHub ist Copilot wirklich von Ihnen abhängig. Das Tool funktioniert am besten, wenn Ihre Codebasis logisch in kleine Funktionen mit klaren Eingaben, Kommentaren und Doc-Blöcken organisiert ist. Wenn Sie die besten Ergebnisse erzielen möchten, müssen Sie Copilot anleiten, indem Sie selbst hochwertigen Code schreiben.

Was ist mit der Lizenzierung?

< p>Copilot wurde in öffentlichen GitHub-Projekten mit einer Vielzahl von Lizenzen geschult. Laut GitHub stellt dies eine faire Nutzung dieser Projekte dar. Was weniger klar ist, sind Ihre Verantwortlichkeiten, wenn Sie einen Vorschlag von Copilot annehmen.

Werbung

GitHub sagt, dass die Ausgabe von Copilot “gehört Ihnen” und “Sie sind dafür verantwortlich.” Darin heißt es ausdrücklich, dass Sie Copilot oder einem anderen Autor keinen Namen geben müssen, wenn Sie ein vorgeschlagenes Snippet verwenden. Das Unternehmen möchte Copilot als “Code-Synthesizer” die eine Originalausgabe erzeugt, keine Suchmaschine für indizierte Snippets.

Hier beginnt der Ärger. Copilot hat noch eine Chance, Codeabschnitte wörtlich auszugeben. Abhängig von den Lizenzen, die diese Snippets umgeben, könnte dies Ihr eigenes Projekt in heißes Wasser bringen. Da Copilot in GitHub-Projekten geschult wurde, stellen Sie möglicherweise sogar fest, dass personenbezogene Daten in Ihre Quelldateien eingefügt werden.

Diese Ereignisse sollen selten sein. Sie sind wahrscheinlicher, wenn der umgebende Codekontext schwach oder unklar ist. Beispiele, die bisher gesehen wurden, sind GPL-lizenzierter Quake-Code, der unverändert ausgegeben wird (komplett mit profaner Sprache) und der Website-Text einer echten Person und soziale Links, die angezeigt werden, wenn Copilot denkt, dass Sie ein “about . schreiben ich” Seite.

Die GPL und andere ähnliche Lizenzen schreiben vor, dass abgeleitete Werke die gleichen Berechtigungen enthalten müssen, sodass die Integration von GPL-Code in ein kommerzielles Produkt eine Lizenzverletzung darstellt. Folglich hat die Verwendung von Copilot schwerwiegende rechtliche Konsequenzen, die Sie vor der Installation prüfen sollten. Da Copilot Code wortwörtlich auszugeben scheint, ohne die dem Snippet beigefügte Lizenz anzugeben, könnten Sie unwissentlich eine Urheberrechtsverletzung begehen, indem Sie einen Vorschlag annehmen.

Dies sollte zweifelsfrei bestätigen, dass die Erstveröffentlichung von Copilot nicht einen menschlichen Entwickler zu ersetzen. Der von ihm ausgegebene Code ist nicht garantiert relevant, könnte beschädigt oder veraltet sein und sogar ein rechtliches Risiko darstellen.

Schlussfolgerung

Copilot ist ein ehrgeiziges Projekt, das viel diskutiert hat. Der Grad der Debatte zeigt, dass viele Menschen starke Gefühle für die Idee haben. Es ist schon eine Weile her, dass ein neues Entwicklertool am ersten Tag so viel Aufsehen erregte.

Werbung

Copilot ist attraktiv, weil es mehrere Entwicklerfrustrationen anspricht. Die meisten, wenn nicht alle Programmierer spüren die Ineffizienz beim Schreiben von “boilerplate” Code, der nicht besonders spezifisch für ihr Projekt ist. Wenn sie Copilot für bare Münze nehmen, haben sie jetzt eine Lösung, die mehr Zeit für die kreativen Aspekte ihrer Arbeit lässt.

Wo Copilot scheitert, ist der pauschale Ansatz, den GitHub verfolgt, um die Modell. Die Einbeziehung von GPL-lizenziertem Code und das völlige Fehlen jeglicher Form von Ausgabetests sind Versehen, die die reale Nutzung von Copilot behindern. Es ist unklar, ob die Entscheidung von GitHub, das Modell mit öffentlichem Code zu trainieren, tatsächlich unter Fair Use fällt; Es gibt Spekulationen, dass dies zumindest in einigen Gerichtsbarkeiten nicht der Fall ist.

Darüber hinaus bedeutet die Unfähigkeit von GitHub, Copilot-Code tatsächlich zu überprüfen, dass er tatsächlich funktioniert, dass Entwickler immer noch vorsichtig sein und alles überprüfen müssen, was er schreibt. Ein großer Teil des Versprechens von Copilot besteht darin, unerfahrenen Entwicklern zu helfen, Fortschritte zu machen, aber dies wird nicht passieren, wenn potenziell fehlerhafter Code vorgeschlagen und akzeptiert wird.

Schließlich gibt Copilot keine Hinweise darauf, wie oder warum seine Vorschläge funktionieren. Wenn es menschliche Entwickler wirklich ersetzen soll, sollte es in der Lage sein, die Funktionsweise einer Lösung zu erklären und die getroffenen Entscheidungen transparent zu machen. Entwickler können der Maschine nicht blind vertrauen; Es wird immer eine Aufsicht und Bewertung verschiedener Lösungen geben müssen.

Das Wie und Warum ist auch die größte Herausforderung für einen Entwickler zu Beginn seiner Karriere, was die Rolle von Copilot als Mentoring-Tool behindert. Jeder kann Quellcode aus öffentlichen Projekten, Dokumentationen, Kollegen oder Copilot kopieren, aber letztendlich ist es das Verständnis dafür, warum Lösungen funktionieren, das Sie in Ihrer Karriere voranbringt.

Copilot in seiner aktuellen Version tut dies nicht. #8217;nicht darauf eingehen – Es liegt immer noch an Ihnen, herauszufinden, was der eingefügte Code bewirkt. Selbst ein Entwickler, der sich regelmäßig auf Stack Overflow verlässt, wird an einem besseren Ort landen, da er Antworten liest und die Denkweise hinter Lösungen lernt. Copilot ist eine Blackbox, die als Aufbewahrungsort perfekter Codevorschläge angesehen werden kann. die bisherigen Beweise zeigen, dass dies bei weitem nicht der Fall ist.

Exit mobile version