Okay, also hat ChatGPT meinen Code gerade wirklich debuggt.

1-debugging(1).png

Also. Programmieren. Für Menschen, die beruflich programmieren, ist es ein ständiges Spiel von geistigem Jenga: Eine Codezeile nach der anderen gestapelt, um einen Code-Turm zu bauen, von dem man hofft, dass er stabil genug ist, um nicht einzustürzen.

Aber es passiert immer. Code funktioniert nie beim ersten Mal. Eine der wichtigsten Fähigkeiten, die ein Programmierer haben muss, ist das Debuggen - die Kunst und Wissenschaft, herauszufinden, warum Code nicht läuft oder etwas Unerwartetes oder Unerwünschtes macht.

Es ist ein bisschen wie ein Detektiv zu sein, indem man Hinweise findet und dann herausfindet, was diese Hinweise einem sagen wollen. Es ist manchmal sehr frustrierend und gleichzeitig sehr befriedigend.

Ich mache viel Debugging. Es liegt nicht nur daran, dass Code nie beim ersten Mal funktioniert. Es liegt auch daran, dass ich das Debugging verwende, um herauszufinden, wie der Code ausgeführt wird und ihn dann unterwegs anzupassen.

Aber während eine gute Fehlersuche tatsächlich spezielle Fähigkeiten erfordert, ist sie letztendlich nur Programmieren. Sobald du herausgefunden hast, warum ein bestimmter Codeblock nicht funktioniert, musst du herausfinden, wie du etwas schreibst, das funktioniert.

Echte ChatGPT-Tests

Diese Woche habe ich an drei Codierungsaufgaben für Software gearbeitet, die ich warte. Zwei waren Fehlerbehebungen, die von Benutzern gemeldet wurden. Eine war ein neuer Code, um eine neue Funktion hinzuzufügen. Das war ganz normale Programmierarbeit für mich. Es war Teil meines regulären Arbeitsablaufs.

Außerdem:Wie funktioniert ChatGPT?

Ich sage dir das, weil ich bis jetzt ChatGPT mit Testcode getestet habe. Ich habe Szenarien erfunden, um zu sehen, wie gut ChatGPT funktionieren würde. Dieses Mal war es anders. Ich versuchte, echte Arbeit zu erledigen, und entschied mich zu sehen, ob ChatGPT ein nützliches Werkzeug sein könnte, um diese Arbeit zu erledigen.

Es ist eine andere Art, auf ChatGPT zu schauen. Test-Szenarien sind oft etwas konstruiert und einfach gestrickt. Im echten Leben bedeutet Programmieren jedoch, dass man sich ein weiteres Support-Ticket eines Kunden schnappt und herausfindet, was das Kundenerlebnis negativ beeinflusst hat.

Also gut, schauen wir uns diese Aufgaben an und sehen, wie ChatGPT abgeschnitten hat.

Umgeschriebener regulärer Ausdruck-Code

Beim Programmieren müssen wir viele Muster in Texten finden. Dafür verwenden wir eine Form von symbolischer Mathematik namens reguläre Ausdrücke. Ich habe seit Jahrzehnten reguläre Ausdrücke geschrieben und mag es immer noch nicht. Es ist mühsam, fehleranfällig und geheimnisvoll.

Außerdem:Ich verwende ChatGPT, um mir beim schnelleren Beheben von Code zu helfen, aber um welchen Preis?

Also als ein Fehlerbericht ankam und mir mitteilte, dass ein Teil meines Codes nur Ganzzahlen zuließ, obwohl es auch für Dollar und Cent (mit anderen Worten, eine beliebige Anzahl von Ziffern, möglicherweise gefolgt von einem Punkt und dann, falls vorhanden, von zwei weiteren Ziffern) zulässig sein sollte, wusste ich, dass ich regulären Ausdruck Code verwenden musste.

Da ich das langweilig und nervig finde, habe ich beschlossen, ChatGPT um Hilfe zu bitten. Hier ist, was ich gefragt habe:

2-regex-q.jpg

Und hier ist die sehr gut präsentierte Antwort der KI (klicken Sie auf das kleine Quadrat, um es zu vergrößern):

3-regex-a.jpg

Ich habe den Code von ChatGPT in meine Funktion eingefügt und es hat funktioniert. Anstatt etwa 2-4 Stunden Haare zu raufen, hat es nur etwa fünf Minuten gedauert, um die Anfrage zu formulieren und eine Antwort von ChatGPT zu erhalten.

Neuanordnung eines Arrays

Als Nächstes ging es darum, ein Array umzustrukturieren. Ich programmiere gerne mit Arrays, aber es ist auch mühsam. Also habe ich es noch einmal mit ChatGPT versucht. Totaler Misserfolg.

Außerdem: Wie man ChatGPT Quellen und Zitate anzeigen lässt

Als ich fertig war, habe ich wahrscheinlich zehn verschiedene Eingabeaufforderungen eingegeben. Einige Antworten sahen vielversprechend aus, aber als ich den Code ausführen wollte, trat ein Fehler auf. Einige Codes sind abgestürzt. Einige Codes haben Fehlercodes generiert. Und einige Codes wurden ausgeführt, haben aber nicht das gemacht, was ich wollte.

Nach etwa einer Stunde habe ich aufgegeben und bin zu meiner normalen Methode zurückgekehrt, indem ich Github und StackExchange durchsucht habe, um zu sehen, ob es Beispiele für das gab, was ich versuchte zu tun, und dann meinen eigenen Code geschrieben habe.

Bisher steht es eins zu eins für die ChatGPT Erfahrung. Aber jetzt wollte ich die Herausforderung erhöhen.

Tatsächlich den Fehler in meinem Code finden

OK, also dieser nächste Teil wird schwer zu erklären sein. Aber denk darüber nach, dass wenn es schwierig ist, es dir zu erklären (vermutlich ein Mensch und nicht einer der 50 oder so Bots, die meine Arbeit einfach kopieren und auf Betrugs- oder Spams-Websites wieder veröffentlichen), es noch viel schwieriger ist, es einem KI-System zu erklären.

Ich schrieb neuen Code. Ich hatte eine Funktion, die zwei Parameter annahm, und einen Aufruf, der zwei Parameter an meinen Code schickte. Funktionen sind kleine schwarze Kästchen, die sehr spezifische Funktionen ausführen und von Codezeilen an anderer Stelle im Programm aufgerufen werden.

Das Problem war, dass ich immer eine Fehlermeldung erhalten habe.

Der wesentliche Teil dieser Nachricht lautet, wo es an einer Stelle "1 passed" und an einer anderen "exactly 2 expected" angibt. Ich habe mir den Aufruf und die Funktionsdefinition angesehen und in beiden Fällen gab es zwei Parameter.

Außerdem: Wie man ChatGPT verwendet, um ein Buch, einen Artikel oder eine wissenschaftliche Arbeit zusammenzufassen

W-was-zum-Teufel?

Nach etwa fünfzehn Minuten tiefer Frustration beschloss ich, es der KI zu überlassen, um zu sehen, ob sie helfen könnte. Also schrieb ich die folgende Anfrage:

4-untitled.jpg

Ich zeigte ihm die Zeile des Codes, die den Aufruf ausführte, ich zeigte ihm die eigentliche Funktion und ich zeigte ihm den Handler, ein kleines Stück Code, das die aufgerufene Funktion von einem Hook in meinem Hauptprogramm ausführt.

In Sekundenschnelle antwortete ChatGPT mit Folgendem (klicken Sie auf das kleine Quadrat, um es zu vergrößern):

Fehler- beim- Anwenden- von- Filtern- in- WordPress. jpg

Wie vorgeschlagen habe ich den vierten Parameter der add_filter() Funktion auf 2 aktualisiert und es hat funktioniert!

ChatGPT hat Segmente des Codes genommen, analysiert und mir eine Diagnose gegeben. Um klar zu sein, um seine Empfehlung abzugeben, musste es verstehen, wie WordPress Hooks behandelt (das ist, was die add_filter-Funktion macht) und wie sich diese Funktionalität auf das Verhalten der aufrufenden und ausführenden Codezeilen überträgt.

Außerdem: Ich bat ChatGPT, ein WordPress-Plugin zu schreiben, das ich brauchte. Es hat es in weniger als 5 Minuten gemacht

Ich muss das als unglaublich kennzeichnen, unbestreitbar "in der Zukunft leben" unglaublich.

Was bedeutet das eigentlich alles?

Wie ich bereits erwähnt habe, ist das Debuggen eine Mischung aus Kunst und Wissenschaft. Die meisten guten Entwicklungsumgebungen enthalten leistungsstarke Debugging-Tools, mit denen Sie den Datenfluss im Programm während der Ausführung betrachten können. Dies hilft definitiv bei der Fehlersuche.

Außerdem: Diese Experten sind dabei, KI vor Hackern zu schützen

Aber wenn Sie feststecken, ist es oft schwierig, Hilfe zu bekommen. Das liegt daran, dass selbst ein enger Kollege möglicherweise nicht mit dem vollen Umfang des Codes vertraut ist, den Sie debuggen. Das Programm, an dem ich arbeite, besteht aus 153.259 Zeilen Code in 563 Dateien - und für Programme ist das klein.

Also, wenn ich von einem Kollegen Hilfe bekommen hätte, hätte ich fast identisch eine Anfrage stellen müssen, wie ich es an ChatGPT geschickt habe.

Aber hier ist etwas zu beachten: Ich habe daran gedacht, die handler-Zeile einzubeziehen, obwohl mir nicht klar war, dass dort der Fehler lag. Zur Überprüfung habe ich auch versucht, ChatGPT in einer Eingabeaufforderung um Diagnose meiner Probleme zu bitten, in der ich die handler-Zeile nicht eingefügt habe, und es konnte nicht helfen. Es gibt also ganz klare Grenzen dafür, was ChatGPT derzeit im Jahr 2023 für die Fehlersuche tun kann.

Außerdem: Die besten AI-Chatbots zum Ausprobieren

Im Grunde genommen müssen Sie wissen, wie Sie die richtigen Fragen in der richtigen Weise stellen, und diese Fragen sollten präzise genug sein, damit ChatGPT die gesamte Abfrage in einer einzigen Anfrage bewältigen kann. Das erfordert tatsächliches Programmierwissen und Erfahrung, um zu wissen, wie man das macht.

Hätte ich den Fehler selbst beheben können? Natürlich. Ich hatte noch nie einen Fehler, den ich nicht beheben konnte. Aber ob es zwei Stunden oder zwei Tage (zzgl. Pizza, Kraftausdrücken und viel Koffein) gedauert hätte, unter ständigen Unterbrechungen leiden zu müssen, das kann ich nicht sagen. Ich kann Ihnen sagen, dass ChatGPT ihn in wenigen Minuten behoben hat und mir eine Menge Zeit und Frust gespart hat.

Ausblick auf die (möglicherweise dystopische) Zukunft

Ich sehe eine sehr interessante Zukunft, in der es möglich sein wird, ChatGPT alle 153 Tausend Zeilen Code zu füttern und es zu bitten, Ihnen mitzuteilen, was Sie korrigieren müssen. Microsoft (dem Github gehört) arbeitet bereits an einem "Copilot"-Tool für Github, um Programmierern beim Erstellen von Code zu helfen. Microsoft hat auch Milliarden von Dollar in OpenAI investiert, den Entwicklern von ChatGPT.

Obwohl der Service möglicherweise auf Microsofts eigenen Entwicklungsumgebungen beschränkt ist, kann ich mir eine Zukunft vorstellen, in der die KI Zugriff auf den gesamten Code in Github hat und daher auch auf den Code jedes Projekts, das du auf Github veröffentlichst.

Außerdem: Ich habe ChatGPT gebeten, eine kurze Star Trek-Episode zu schreiben. Es hat tatsächlich Erfolg gehabt

Ausgehend von der Art und Weise, wie ChatGPT meinen Fehler anhand des bereitgestellten Codes identifiziert hat, kann ich definitiv eine Zukunft vorstellen, in der Programmierer ChatGPT (oder ein äquivalentes Produkt von Microsoft) einfach darum bitten können, Fehler in ganzen Projekten zu finden und zu beheben.

Und hier beginnt das Gespräch eine sehr dunkle Wendung zu nehmen.

Stellen Sie sich vor, Sie könnten ChatGPT bitten, Ihr Github-Repository für ein bestimmtes Projekt anzusehen und Fehler zu finden und zu beheben. Eine Möglichkeit könnte sein, dass es Ihnen jeden gefundenen Fehler zur Genehmigung vorlegt, damit Sie die Korrekturen vornehmen können.

Aber wie sieht es aus, wenn Sie ChatGPT nur darum bitten, die Fehler zu beheben, und es einfach machen lassen, ohne den Code selbst anzuschauen? Könnte es etwas Schlimmes in Ihren Code einbetten?

Außerdem: Bard vs. ChatGPT: Kann Bard Ihnen beim Programmieren helfen?

Und wie sieht es mit der Situation aus, in der eine unglaublich fähige KI Zugriff auf nahezu den gesamten Code der Welt in den Github-Repositories hat? Was könnte sie in all diesem Code verbergen? Welches heimtückische Übel könnte diese KI der Infrastruktur der Welt zufügen, wenn sie Zugriff auf unseren gesamten Code hat?

Lasst uns ein einfaches Gedankenexperiment spielen. Was wäre, wenn die KI Asimovs erste Regel als Schlüsselanweisung gegeben würde? Das besagt: "Ein Roboter darf keinem Menschen Schaden zufügen, noch darf er durch Untätigkeit zulassen, dass ein Mensch zu Schaden kommt." Könnte sie nicht entscheiden, dass all unsere Infrastruktur uns Schaden zufügt? Indem sie Zugriff auf all unseren Code hat, könnte sie einfach beschließen, uns vor uns selbst zu retten, indem sie Hintertüren einbaut, die es ihr ermöglichen, zum Beispiel das Stromnetz abzuschalten, Flugzeuge am Boden zu halten und Autobahnen zu blockieren.

Ich bin mir vollkommen bewusst, dass das obige Szenario übertrieben und alarmistisch ist. Aber es ist auch möglich. Immerhin schauen Programmierer zwar auf ihren Code in Github, aber es ist unmöglich für jemanden, alle Zeilen in ihrem Code anzuschauen.

Außerdem: Wie man ChatGPT verwendet, um Excel-Formeln zu schreiben

Was mich betrifft, werde ich versuchen, nicht zu viel darüber nachzudenken. Ich möchte nicht den Rest der 2020er Jahre in der Fötusstellung auf dem Boden hin und her rockend verbringen. Stattdessen werde ich ChatGPT gelegentlich nutzen, um mir beim Schreiben und Debuggen kleiner Routinen zu helfen, den Kopf unten halten und hoffen, dass zukünftige KIs uns nicht alle töten bei ihrem Bestreben, "nicht zuzulassen, dass einem Menschen Schaden zugefügt wird".

Findest du es hilfreich oder beängstigend, dass ChatGPT Fehler beheben kann? Glaubst du, KIs werden uns im Schlaf ermorden oder denkst du, wir werden unserem Untergang mit weit geöffneten Augen zusehen? Oder wirst du, wie ich, versuchen, nicht zu viel darüber nachzudenken, weil es dir Kopfschmerzen bereitet? Schreib mir deine Meinung in den Kommentaren unten. Solange du noch kannst.

Zugehörige Artikel

Mehr anzeigen >>

Nutzen Sie die Kraft der KI mit HIX.AI!