X
Kommentare zu:

GitHub Copilot:
KI-Hilfe sorgt für zunehmend schlechten Quellcode

oder

Zugangsdaten vergessen?

Jetzt kostenlos Registrieren!
[o1] nexo am 31.01. 10:44
+4 -
Ich muss vor allem sagen, dass ich überhaupt nicht nachvollziehen kann, dass angeblich GPT4 zum Einsatz kommen soll bei CoPilot. Wenn ich mal ChatGPT nutze und im Vergleich dazu CoPilot, muss ich sagen, sind die Vorschläge von GPT4 in ChatGPT deutlich besser.

Auch Kapselungen werden ermöglicht. Natürlich sollte man als Entwickler weiterhin schauen, dass der Code sinnhaft ist und dem Zweck dient. So wird in Teilen auch sehr unsicherer Code geschrieben, wo es an Validierung usw fehlt. Wer das einfach übernimmt, dem ist eh nicht zu helfen. Dennoch beschleunigt ChatGPT gewaltig meine Arbeit.
[re:1] Geedly am 31.01. 10:53
+1 -
@nexo: Das ist auch meine Erfahrung, und ich nutze nur GPT-3.5. Man merkt oft bei Bing und dem Copilot, dass sie komplett anders trainiert wurden. Sie nutzen zwar im Hintergrund die gleiche Technik, aber das Drumherum ist anders. Das habe ich auch auf meinem Smartphone gemerkt, als ich die Copilot-App getestet habe und sie mit der ChatGPT App verglichen habe. Bei vielen Antworten liegen Welten dazwischen.
[re:2] mlodin84 am 31.01. 10:58
+1 -
@nexo: Ich nutze die IntelliJ AI und bin sehr zufrieden mit den Antworten
[re:3] HeadCrash am 31.01. 11:10
+1 -
@nexo: Das hängt davon ab, welchen Copilot du nutzt. Der "normale", der also einfach mitläuft und Vorschläge macht oder Kommentare auswertet, basiert auf Codex, einem Modell das auf GPT 3.5 aufsetzt. Copilot Chat, der als separate Extension über ein eigenes Fenster läuft, basiert auf GPT 4.
[re:1] nexo am 31.01. 11:49
+1 -
@HeadCrash: ja habe den Chat für den Vergleich herangezogen, alles andere wäre ja auch schlecht vergleichbar :)
[re:1] HeadCrash am 31.01. 18:47
+1 -
@nexo: Dann kann es im Grunde nur daran liegen, dass die Code-Generierung im Chat vermutlich immer noch durch Codex passiert und das Modell ja auf dem Stand von Ende 2021 ist. Ich denke, da wird sich bald mal wieder was tun.
[o2] nexo am 31.01. 10:47
+1 -
Was mich auch wundert: Es gibt in VS Code fast mehrmals täglich Updates für die Erweiterung (auch bei Stable). Niemand weiß so richtig warum. Die Versionsnummer im Changelog ist selbst der VS Code Extension in der Preview voraus. Eigentlich müsste das Plugin doch das externe Model nutzen, daher sollte die Erweiterung selbst nicht so viele Updates benötigen.
[o3] HeadCrash am 31.01. 11:20
+3 -
Da müsste ich mal die vollständige Untersuchung lesen, denn dem würde ich so allgemein nicht zustimmen.

Verantwortlich für Korrektheit, Performance und letztlich auch Design ist immer der Mensch vor dem Rechner, deswegen heißt das Ding ja auch Copilot und nicht Pilot oder Captain. Und ich würde behaupten, dass jemand, der sich von Copilot Code generieren lässt und sich dann nicht weiter um Refactoring schert, sich auch ohne Copilot nicht um gutes Design geschert hätte.

Ich will jetzt nicht die Diskussion "früher war alles besser" aufmachen, aber ich sehe in meinen Kundenkontakten gerade bei jüngeren Menschen in der Branche eine starke Tendenz, dass Design, Effizienz, Wartbarkeit etc. zu gunsten einer schnellen Lösung zurückgestellt werden. Und wenn man eine Lösung hat, geht es oft nicht mal mehr darum, sie zu verstehen. Warum auch? Läuft doch!

Dieses "Hauptsache schnell und läuft irgendwie"-Verhalten wird durch immer mehr Druck aus Managementebenen dann auch noch verstärkt und belohnt. Und ist das System dann irgendwann so kaputt, dass man mit vertretbarem Aufwand nix mehr retten kann, wird die Hälfte der Belegschaft entlassen, den die sind natürlich Schuld und unter noch mehr Druck und Schmerzen war neues zusammengeschustert.

Ich denke, das ist eher die Ursache für die schlechter werdende Qualität von Code. Nicht die KI per se.
[re:1] nexo am 31.01. 11:53
+1 -
@HeadCrash: sehe ich auch so es gibt doch den Trend zu immer mehr Insellösungen anstatt Monolithen. Viele unbedarfte, Junioren auf zu wenig Senioren und teils Manager die vom Code eh nichts verstehen. Aber siehe MS Teams oder VS Code und auf welcher technischen Basis sie stehen/standen. Heißt nicht, dass es immer architektonisch eine Meisterleistung sein muss. Manchmal geht es auch einfach um Tempo. Sieht man auch gerade bei Google vs. MS in Sachen KI
[o4] DRMfan^^ am 31.01. 12:17
+2 -
Vielleicht muss man einfach eine Ebene Höher denken. Heute schreibt quasi niemand mehr Assemblercodes, auch weil das unübersichtlich ist. Evtl ist Copilot der Punkt, an dem niemand mehr Klassen schreibt, sondern nur noch Module. Man tauscht dann eben auch ganze Module aus, statt sie irgendwann mal verstehen zu müssen. Oft ist es doch auch nicht der ursprüngliche Entwickler, der Code anpassen soil. Vielleicht wurde eine Funktion auch für eine Ähnliche Berechnung "missbraucht" und die fliegt einem dann um die Ohren, wenn man die zentrale Stelle anpasst, weil keiner das mehr auf dem Schirm hat.

Kurzum: Redundanz wird entfernt für Übersicht - wenn KI die Notwendigkeit von Übersicht aus der Gleichung herausnimmt, dann wäre das kein Problem.

Sorgen mache ich mir eher, dass Copilot Sonderfälle nicht betrachtet, weil sie in 83 von 100 vergleichbaren Codestellen auch nicht berücksichtigt worden sind oder so.
[re:1] SunBlack am 31.01. 15:51
+1 -
@DRMfan^^: Cyril Northcote Parkinson lässt Grüßen: "Software dehnt sich aus, um den verfügbaren Speicher zu füllen." ;-) Die Aussage ist Grundlage für das Wirthsches Gesetz und [OT]wenn ich mir die Evolution vom WinExplorer ansehe, kann man dem Gesetz nur zustimmen (vllt. hat MS den auch per Copilot geschrieben^^).[/OT]
[o5] SunBlack am 31.01. 14:45
+ -
Mal eine Frage an die, die das schon ausgiebig nutzen. An dem Projekt das ich Arbeite bin ich seit ca 10 Jahren dran das nebenbei beständig zu refactoren (man denkt so etwas ist ja irgendwann fertig, aber ne, durch Anforderungsänderungen, Änderungen bei 3rd-Party-Libs ändert sich doch beständig war): Wie gut sind die jeweiligen KI? Könnte ich der z.B. sagen: Bisher haben wir GLM für Vectoren & Matrizen benutzt, wollen jetzt aber eine andere 3rd-Party-Lib nutzen mit einer ganz anderen Syntax: Ändere das mal! Also kann KI mit einem größeren Kontext umgehen oder eher nur Klassenweise?
[re:1] wertzuiop123 am 31.01. 15:09
+ -
@SunBlack: Die Qualität der Ergebnisse hängt stark von den verfügbaren Trainingsdaten ab. Wenn du ein Modell darauf trainierst, spezifische Codebasisänderungen durchzuführen, sollte es auf eine Vielzahl von Kontexten vorbereitet sein. Je spezifischer die Anweisungen sind, desto besser wird die KI die gewünschten Änderungen vornehmen können. Allgemeine Anweisungen werden zu unpräzisen Ergebnissen führen. Dazu führt, dass automatisierte Code-Änderungen sorgfältige Überprüfung nötig sind (v.a. zu Beginn) und auch Tests, um sicherzustellen, dass sie die gewünschten Ergebnisse liefern und keine unerwünschten Nebenwirkungen haben -> auch um Trainingsdaten zu verbessern oder die Anweisung noch viel genauer zu schreiben - v.a. letzteres lernt man dann schnell :)

Aber dafür empfehle ich ChatGPT Plus - da kann man auch Projekte dort im Team teilen und mit mehreren Personen an Promts arbeiten
[re:1] SunBlack am 31.01. 15:46
+ -
@wertzuiop123: Ah okay danke, also muss man erst die KI bei eigenen Änderungen zuschauen lassen. Ich hatte gehofft, dass durch das Training von den ganzen GitHub-Projekten und evtl. PRs schon genug weiß, dass man sie nicht erst selber noch trainieren muss, sondern Pattern zwischen untrainiertem Code und "allgemein verfügbaren Code" erkennt. Aber gut, noch sind es ja eher Sprachmodelle und keine echten KIs.
[re:1] wertzuiop123 am 31.01. 15:48
+ -
@SunBlack: Naja auf eure Code-Eigenheiten kann sich das Tool anpassen. Für die generellen Sachen wirds schon halbwegs passen (aber oft hat es seine eigene Art - wie bei Text eben) - aber man kann noch einiges mitgeben, was ihr individuell / oder abgeändert macht
[re:2] HeadCrash am 31.01. 18:55
+1 -
@SunBlack: Nein. Die KI ist kein Berater, sondern eher ein Werkzeug, um die langweilige Tipparbeit abzukürzen und vielleicht mal eine erste Idee für eine Umsetzung zu geben.

Das kann man z.B. mit Copilot sehr gut selbst testen. Bitte ihn z.B., eine einfache Funktion zu schreiben, die Addition, Subtraktion, Multiplikation und Division für zwei Zahlen ausführen und das Ergebnis zurückliefern kann. In 99% der Fälle wird das Ding etwas ausspucken, was eine Division durch null zulässt. Fragst Du dann, was mit dem Code nicht stimmt, ist der Copilot ratlos und schlägt irgendwas vor, aber mit hoher Wahrscheinlichkeit keine Fehlerbehandlung für die Division durch null. Markierst Du die entsprechende Zeile Code und bittest Copilot, den Code zu fixen, schlägt er Dir immer wieder wahllos andere Varianten vor. In TypeScript/JavaScript z.B. fängt er an, irgendwelche Bibliotheken einzubinden und man muss ihn schon fast drauf stoßen, mal den Divisor auf null zu prüfen. Das ist eine Demo, die ich gerne mache, um Leuten klarzumachen, dass hier keine Wunderintelligenz am Werk ist und man dringend den mitdenkenden Entwickler braucht.

Die KI wird vielleicht einfache Refactorings wie Extraktion von Variablen oder Methoden vorschlagen, aber wirklich komplexe Dinge wird sie Dir nicht geben. Dafür ist auch der Kontext, den die KI mit einbeziehen kann, viel zu klein.
☀ Tag- / 🌙 Nacht-Modus
Desktop-Version anzeigen
Impressum
Datenschutz
Cookies
© 2024 WinFuture