paint-brush
Mein neuer Junior-Entwickler ist irgendwie scheißevon@michaelsalim
1,204 Lesungen
1,204 Lesungen

Mein neuer Junior-Entwickler ist irgendwie scheiße

von Michael Salim6m2023/05/12
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Die Verwendung von ChatGPT zum Codieren ist, als ob Sie einen Junior-Entwickler unter sich hätten. Der Code kann dort zu 80 % gefunden werden, aber Sie müssen praktisch jede Zeile überprüfen. Zwischen der Benutzeroberfläche und der Interaktion ist die Verwendung ziemlich mühsam. Den häufigsten Erfolg hatte ich dreimal.
featured image - Mein neuer Junior-Entwickler ist irgendwie scheiße
Michael Salim HackerNoon profile picture
0-item

Dieser Entwickler ist ChatGPT, und ich habe eine Hassliebe zu ihm.


Heutzutage gibt es so viele Artikel über KI, daher werde ich versuchen, mich kurz zu fassen.

TL;DR:

Die Verwendung von ChatGPT zum Codieren ist, als ob Sie einen Junior-Entwickler unter sich hätten. Sie können den Code dort zu 80 % erhalten, aber Sie müssen praktisch jede Zeile überprüfen.

Das Szenario

Ich muss zugeben, dass es viele Möglichkeiten gibt, ChatGPT zum Schreiben von Code zu verwenden. Bei manchen ist es wahrscheinlich besser, bei anderen schlechter.


Ich habe zum Beispiel viele Leute gehört, die es als Suchmaschine nutzen. Ich persönlich finde das etwas fragwürdig. Es ist nicht so schwer, über eine Suche Dokumentation oder sogar Antworten zu finden. Ich verwende Kagi , das hilft, die Flusen zu reduzieren.


Im Gegenteil, woher sollen Sie mit ChatGPT wissen, ob die Antwort wahr ist?


Auf der anderen Seite des Spektrums gibt es viele Leute, die es als verherrlichte automatische Vervollständigung nutzen. So etwas wie Github Copilot . Ich kann mir vorstellen, dass das nützlich ist.


Das von mir gewählte Szenario ist:

Konvertieren meines Codes von chakra-ui nach tailwindcss .


Warum?


  • Für beide Technologien gibt es zahlreiche Ressourcen, insbesondere für Tailwind (und natürlich HTML). Es sollte über zahlreiche Daten verfügen, mit denen Sie arbeiten können.


  • Es ist sehr gut möglich, hierfür ein Programm zu erstellen. Auch wenn es viele Randfälle gibt, ist die Funktionalität selbst unkompliziert. chakra-ui ist von Rückenwind inspiriert und erbt daher eine Reihe von Dingen, die leicht übertragen werden können.


  • Das ist etwas, was ich tun muss. Es handelt sich also um einen echten Anwendungsfall, auf den jemand anderes stoßen könnte.

Schnelles Engineering ist eine lästige Pflicht

Wenn man sich auf dem Feld umschaut, scheint es, als ob eine gute Eingabeaufforderung den Unterschied zwischen guten oder mittelmäßigen Ergebnissen ausmacht. Ich bin nicht der Beste darin, aber ich habe ein wenig recherchiert und mein Bestes gegeben.


Ich habe darauf geachtet, mehrere Eingabeaufforderungen zu verwenden, um einen guten Zustand zu erreichen. Ich füge meinen Code nur dann ein, wenn es den Anschein hat, dass es nur meinen Code konvertieren soll.


Ehrlich gesagt könnte dieser Teil verbessert werden. Zwischen der Benutzeroberfläche und der Interaktion ist die Verwendung ziemlich mühsam:


  • Es kann einige Zeit dauern, bis der gewünschte Zustand erreicht ist

    Wenn ich darüber nachdenke, was ich schreiben soll, dann auf die Antwort warte und mit dem Schreiben fertig bin, wird es ziemlich nervig, diese Arbeit zu erledigen.


  • Es ist inkonsistent

    Es hilft nicht, dass Sie nicht immer dieselben Eingabeaufforderungen wiederverwenden können. ChatGPT weist eine gewisse Zufälligkeit auf, daher musste ich die Eingabeaufforderung jedes Mal anpassen. Das Kopieren und Einfügen einer Eingabeaufforderung, die zuvor funktionierte, hat nicht geholfen.


  • Es ist sehr einfach, aus dem gewünschten Zustand herauszukommen

    Das oben Genannte ist in Ordnung, wenn es sich um eine einmalige Sache handelt. Aber ich habe festgestellt, dass es für die KI sehr leicht ist, nach der ersten Codekonvertierung alles zu vergessen. Ich glaube, den wiederholtesten Erfolg hatte ich dreimal. Darüber hinaus wurden völlig unabhängige Dinge zurückgegeben, beispielsweise die Erklärung, was mein Code tut.


  • Token ist ein ziemlich limitierender Faktor

    Aufgrund des Token-Limits kann nur eine begrenzte Menge Code produziert werden. Sie können den Tokenizer hier überprüfen, um zu sehen, wie er die Token berechnet . Es ist nicht sehr benutzerfreundlich für Code. Unten sehen Sie ein Beispiel für eine seiner Ausgaben. Jede unterschiedliche Farbe stellt einen Token dar.


    Tokenisierter Code

    Aus diesem Grund muss ich die Konvertierung in mehrere Schritte aufteilen. Andernfalls bleibt die Generation mittendrin stehen. Meistens funktioniert es nicht, ihm zu sagen, er solle fortfahren. In Kombination mit den oben genannten Punkten wird dies schnell zu einer lästigen Pflicht.


    ChatGPT gibt einen Fehler aus, wenn es aufgefordert wird, die Codegenerierung abzuschließen


Alles in allem habe ich das Gefühl, dass ich kein Englisch schreiben möchte. Wenn ich schon etwas schreiben muss, schreibe ich lieber direkt Code, der funktioniert.


Ich kann mir vorstellen, dass schnelles Engineering eine Schlüsselkompetenz für die Zukunft sein wird. Ähnlich wie das Wissen, wie man sucht, eine Schlüsselkompetenz in der heutigen Welt ist.

Die Ausgabe ist nicht so schlecht

Trotz all der Arbeit, die es erforderte, hat ChatGPT einen ziemlich beeindruckenden Code ausgegeben. Hier ein Vergleich zwischen Original und Ergebnis:


Wie Sie sehen, hat es seine Arbeit recht gut gemacht.


Das gute

  • Die Struktur wird recht gut rübergebracht

    Abgesehen von den Details ist die HTML-Struktur dem Original recht ähnlich. Die Abstände sind verändert, aber das Gesamtlayout bleibt erhalten.


  • Der Textinhalt ändert sich nicht

    Der Inhalt selbst wurde gut verarbeitet. Obwohl ich alle noch einmal überprüfen musste, wurde nichts davon geändert. Die einzige Ausnahme bilden diejenigen, die von JS abgeleitet sind.


Das Schlechte

  • Es gab zufällige Klassen

    Es gibt viele Klassen, die nichts bewirken. Einige wurden geändert, andere waren ungültige Rückenwindklassen.


  • Es gibt viele kleine Unterschiede

    Die Benutzeroberfläche sah aus, als ob gerade eine Bibliothek aktualisiert worden wäre und jemand vergessen hätte, den Code zu migrieren. In diesem Fall liegt es daran, dass ChatGPT die Werte der Klassen zufällig geändert hat. Zum Beispiel ein padding von 3 auf 4 oder eine Änderung der font-weight von Fett auf Normal. Die Angaben waren alle falsch.


  • In der Hälfte der Fälle klappt es nicht

    Die Screenshots oben waren diejenigen, die ich direkt vergleichen kann. In Wirklichkeit waren die Ergebnisse entweder unvollständig oder einfach so falsch, dass ich viele Änderungen vornehmen musste, damit es funktionierte. Und deshalb kann ich es nicht nebeneinander vergleichen. Es gibt einfach nichts Vergleichbares, da der Code nicht läuft.

Es ist, als würde man PRs überprüfen, anstatt Code zu schreiben

Das Tolle daran ist, dass ich etwas habe, mit dem ich arbeiten kann. Zum Glück ist die Arbeit selbst sehr einfach. Es ist leicht, Fehler zu erkennen. Die Zuordnung zwischen den Klassen Chakra-ui und Rückenwind ist nahezu eins zu eins. Es ist nur mühsam, weil die Syntax anders ist.


Dieser Ansatz ähnelt jedoch eher der Überprüfung von PRs. Ich musste den gesamten Code durchgehen, um sicherzustellen, dass alles richtig gemacht wurde.


Es sieht auf den ersten Blick in Ordnung aus. Aber es gibt viele Fallstricke, wenn man damit arbeitet und genau aufpasst. Es bringt dieses falsche Sicherheitsgefühl mit sich, das mich ein wenig frustriert hat, als ich von all den Mängeln erfuhr.


Ein großer Teil davon ist Code, der aus anderen Codebasen interpoliert wird. Es sieht nicht schrecklich aus, aber es ist nicht das, was ich wollte.


Es gibt sogar einige alarmierende Änderungen, wie zum Beispiel die Änderung der Überschrift von h2 auf h1. Ich kann aufgrund des Inhalts nur davon ausgehen, dass dies der Fall war.


Es fühlte sich an, als hätte ein Junior-Entwickler etwas zusammengebastelt und seinen Code nicht getestet . Und jetzt muss ich es überprüfen und beheben, ohne ihnen sagen zu können, dass sie es selbst beheben sollen.


Und das ist schrecklich. Ich habe bereits die Aufgabe, PRs bei der Arbeit zu überprüfen. Jetzt muss ich es auch für meine eigenen Projekte tun? Nein danke!

Hoffnungsvolle Zukunft

Auch wenn ich nicht glaube, dass es schon annähernd so weit ist, denke ich doch, dass KI irgendwann für die Entwicklung in der Zukunft hilfreich sein wird. Ob die Antwort LLMs ist, wer weiß?


Die Token-Limits nehmen ständig zu

Ich habe lange genug damit gezögert, diesen Artikel fertigzustellen. In dieser Zeit gibt es zahlreiche Ankündigungen, dass das Token-Limit erhöht wird. Ich bin mir zwar nicht sicher, ob es öffentlich, kostenpflichtig oder was auch immer ist, aber es ist großartig zu sehen.


Mit der Zeit sollte es einfacher werden, UX zur Eingabeaufforderung zu bewegen

Mit ChatGPT-Plugins und einer besseren Integration sollten Probleme wie das Erinnern von Status und Konsistenz verbessert werden. Hoffentlich verringert sich dadurch der Aufwand, der erforderlich ist, um nützliche Ergebnisse von ChatGPT zu erhalten.


In der Zwischenzeit habe ich die andere Hälfte der Migration manuell abgeschlossen. War es schneller? Nun, wer weiß. Es fühlte sich ungefähr gleich an. Aber es fühlte sich viel besser an, es manuell zu schreiben.