Sorry, für meine verspätete Antwort... Jahresanfangsprobleme in zwei Projekten... 🙄
Sehr interessant finde ich
@Carlo 's Ausführungen oben und die decken sich ganz gut mit meinen Erfahrungen.
Ich habe die KI also nach der Programmiersprache ObjectPAL gefragt und sie hat ziemlich selbstbewusst (und ausführlich) geantwortet.
Sinngemäß: "Natürlich kenne ich ObjectPAL..." und dann kam eine erstklassig ausformulierte und sehr vollständige Zusammenstellung der Fakten rund um ObjectPAL.
Meine erste Frage war, ob die KI eine Prozedur schreiben könne, die Integer in einem Array sortieren würde.
Von der Antwort war ich erstmal geplättet, weil das Ding mir einen Sourcecode zurückschickte, der nicht nur ein ordentliches Syntax-Highlighting enthielt (er muss also Schlüsselwörter, Variablen, u.s.w. kennen und unterscheiden können).
Im Detail gab es dann einige Probleme:
1.) Das Ding verwendete einen Datentyp "Integer", den es in ObjectPAL so nicht gibt (Es gibt "SmallInt" oder "LongInt").
2.) Die Array-Deklaration war falsch formuliert und sah eher Pascal-like aus.
3.) Die Sortierung erfolgte einfach durch den Aufruf der Methode "sort()" des Objekttyps "Array". Das Problem war nur: Es gibt keine solche Methode bei diesem Typ! "Sort()" gibt es nur beim Objekttyp "TCursor" (Cursor auf Datenbanktabelle).
Das Programm war also syntaktisch falsch und auch als Ideengeber völlig unbrauchbar.
- Ich habe dann den ersten Fehler angemeckert und das Ergebnis war erstaunlich:
Die KI hat sich sehr devot für ihren Fehler entschuldigt und dann selbständig und ausführlich ihren eigenen Fehler beschrieben und die richtigen Datentypen vorgeschlagen. Die kannte sie also...?
- Dann habe ich den zweiten Fehler angemerkt (wieder ohne die Lösung zu benennen, nur das die Deklaration falsch war):
Auch hier hat die KI sich dann wieder entschuldigt und weitschweifend ihren eigenen Fehler selbst analysisert und korrigiert, aber guess what... Der falsche Datentyp "Integer" war jetzt wieder drinnen.
- Der Hinweis, dass es mit "sort()" nicht geht, wurde dann von der KI wieder mit einer Entschuldigung quittiert und nun mit einem ganz neuen Programmcode beantwortet.
Das Ergebnis war nun sehr interessant, denn es enthielt zwar eine brauchbare Lösung (simpler iterativer Sortieralgorithmus mit einer Vergleichsfunktion), aber es war nun in einer Art Pseudocode formuliert, der mir wie eine Mischung aus Pascal und ein paar Elementen ObjectPAL-Syntax erschien.
------- Zweiter Versuch --------
Ich habe dann gefragt, ob die KI ein Code-Schnipsel von mir überprüfen und oprtimieren könne... "Certainly..." also wieder ziemlich dick aufgetragen.
Ich habe anschließend ein - ziemlich hemdsärmliges - Skript hochgeladen, das jede Menge Optimierungspotenzial hätte.
Das Skript läuft in einer äußeren Schleife über einen Recordset einer DB-Tabelle und - bei Eintreffen bestimmter Umstände (hier ein negativer Kontosaldo) - beginnt eine innere Schleife über die folgenden Datensätze zu laufen und wertet diese bis zu einem bestimmten Ereignis wieder aus (hier, der Ausgleich des Kontosaldos, also Konto wieder im Haben).
Der aktuelle Status während der Auswertung in der inneren Schleife wird über ein paar Statusflags vermerkt, die dann in bestimmter Kombination jeweils eine Reaktion auslösen (Ergesbnisdatensatz schreiben, innere Schleife beenden, Analsye abbrechen, u.s.w.).
Als Antwort bekam ich dann eine Liste an Verbesserungsvorschlägen, die sich wie eine Zusammenstellung von Ratschlägen aus einem Refactoring-Buch anhörten, aber auf völlig unbrauchbare Weise auf das Skipt angewendet wurden.
Z.B. schlug die KI vor, alle Flags zu streichen und sie an den Stellen, an denen diese im Original ausgewertet wurden, den (durch das Flag bedingten) Schleifenabbruch mit "quitLoop" durch den Befehl "break" zu ersetzen.
Dadurch wäre das Skript völlig unbrauchbar. Außerdem gibt es gar kein "break" in ObjectPAL.
Weitere Fehler:
- Das geänderte Skript sah wie eine Mischung aus Java und Pascal aus.
- Der falsche Datentyp "Integer" war wieder drinnen (nicht aus dem ersten Beispliel gelernt?")
Der Gipfel war, dass das Inkrementieren einer Laufvariable im Original ("i = i +1") durch ("i = i") ersetzt wurde !?!
---------------------------
Irgendwie war das ernüchternd, aber gleichzeitig auch erstaunlich, was das Ding schon kann.
Es bringt wirklich geschliffene Texte in Englisch oder Deutsch hervor, die einen gewissen "Eindruck" machen. Man ist erstmal beeindruckt und geneigt den Inhalt anzunehmen.
Der Inhalt ist aber zu einem guten Teil einfach Bullshit, zumindest im technologischen Bereich.
Ich verstehe nun, dass es Wissenschaftler gibt, die vor dieser Art von KI warnen, weil sie eine Überschwemmung fachlicher Diskussionen mit wunderbaren Texten voller Blödsinn befürchten.
Die Webseite "StackOverflow", wo Entwickler sich gegenseitig austauschen und helfen, hat die Verwendung von Texten aus ChatGPT verboten und User, die dagegen verstoßen, werden zukünftig drastisch sanktioniert werden.