Ich habe eine ziemlich anspruchsvolle Aufgabe übernommen. Das heißt, man nimmt einen hässlichen Unternehmens-C#-Code und übersetzt ihn in Python. Bevor ich tiefer eintauche, habe ich das Gefühl, dass ich etwas erklären muss.
Dieses C#-Projekt dient als Datenverarbeitungsschicht für einige Modelle für maschinelles Lernen. Sehen Sie, Sie hören Daten, das erste, was Ihnen in den Sinn kommen sollte, ist Python. Leider war dies nicht der Fall, und um es zu verbessern, wird die .NET-Erweiterung für Apache Spark verwendet. Die Migration auf Python ist sinnvoll, da für das Problem eine eher nicht standardmäßige Technologie verwendet wird, was die Einstellung zukünftiger Talente ziemlich schwierig macht. Und es gibt andere offensichtliche Probleme, die auch in anderen OOP-Sprachen für Unternehmen häufig vorkommen, wie mehrere Abstraktionsebenen, überall Vererbung, Umkehrung der Kontrolle, wiederum Dinge, die man bei der Datenverarbeitung nicht macht. Und um den Teufel noch mehr zu füttern, wird das ursprüngliche Team von Auftragnehmern/Beratern (denn wer sonst würde C# verwenden als irgendein Unternehmensberater) nächsten Monat gehen.
Übrigens verwende ich Neovim und Github Copilot seit fast zwei Jahren, außerdem Copilot Chat (technisch gesehen ChatGPT), seit ich die Vorschauversion in die Hände bekommen habe, also bin ich keineswegs ein völliger Neuling, wenn es darum geht kommt zu LLMs und Code.
Wie fühlt es sich an, mit Claude 3.5 zu programmieren? Nun, es gibt einige gute, schlechte und hässliche Teile. Aber meistens haben Sie keine Ahnung, was passiert, selbst wenn Sie in der Lage sind, die gleiche Funktionalität von Grund auf zu schreiben.
Claude 3.5 liefert in der Regel überraschend korrekte Ergebnisse. Manchmal versucht es jedoch, intelligent zu sein, und scheitert, aber Sie können es anleiten, um die Probleme zu beheben. Insgesamt ist es ein guter Begleiter, um Fragen zu stellen, und da ich einen strengen Arbeitsablauf hatte und mir viel Mühe gegeben habe, eine anspruchsvolle Eingabeaufforderung mit vielen Beispielen und Randfällen zu erstellen, war ich mehr als zufrieden. Ich könnte einen C#-Kurs belegen und die wichtigen Teile in Python übersetzen, wofür nur sehr wenige zusätzliche Anweisungen erforderlich wären.
Normalerweise kann ich 12 Stunden lang Code schreiben, mit gelegentlichen Toilettenpausen und zum Auffüllen meiner Wasserflasche. Und ja, ich verspüre keinen Hunger, wenn ich mich richtig darauf einlasse. Mit Claude kam ich zwar in den Flow, aber nach etwa drei Stunden fühlte ich mich einfach tot. Während dieser drei Stunden habe ich zwar viel Code produziert und mich produktiv gefühlt, aber es war, als würde ich ununterbrochen Codeüberprüfungen durchführen, nach Änderungen fragen und meistens nicht in der Dokumentation nachschlagen, ob das, was generiert wurde, überhaupt gültig ist.
Wenn Sie ein Programmierer sind, sind Sie wahrscheinlich bis zu einem gewissen Grad mit dem Code vertraut, den Sie geschrieben haben. Diese Vertrautheit verblasst mit der Zeit, aber wenn Sie ausreichend lange mit einer Codebasis arbeiten, kennen Sie sich damit aus. Bei LLM-generiertem Code passiert dies einfach nicht. Ich hatte sehr wenig Verständnis dafür, was vor sich ging. Ich habe tagelang viel Code produziert, jede Zeile überprüft und von Zeit zu Zeit eine Änderung angefordert, aber am Ende hatte ich kaum oder gar keine Ahnung, was eigentlich vor sich geht. Am Ende fühlte sich die Codebasis wie ein Fremder an, etwas, das ich nicht geschrieben hatte. Und um das Ganze noch schlimmer zu machen, war der tatsächliche Codestil inkonsistent, man konnte genau erkennen, welche Dateien am selben Tag geschrieben wurden. Es fühlte sich an, als ob verschiedene Leute es geschrieben hätten.
Ich habe viel Zeit damit verbracht, diesen vollständigen LLM-Codierungsansatz zu überprüfen, zu überarbeiten und zu optimieren, aber das Ergebnis ist meistens nur Code, der einigermaßen funktioniert, aber Sie haben keine Ahnung, warum oder wie. Die große Frage ist:
Lohnt es sich, am Ende eine Codebasis zu haben, mit der man wenig Bindung hat und die sich sofort anfühlt, als hätte man sie vor einem Jahr mit einst imaginären Kollegen geschrieben?
Um es zusammenzufassen: Ich hatte zwar das Gefühl, mehr Code produziert zu haben, allerdings war die Qualität geringer als üblich. In manchen Fällen ist diese geringere Qualität gerechtfertigt, insbesondere wenn es Ihnen egal ist. Aber ich befürchte, dass die Zeit kommt, in der jede Codebasis in Rekordzeit zum „Legacy“ wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3