Is ChatGPT het einde?
Arnout van Kempen over rommelen in een digitale wereld.
ChatGPT kan veel, en ook veel niet. De eerste beroepsgroep die ChatGPT grondig aan het toepassen is en waar op korte termijn echt spectaculaire veranderingen gaan komen is, als ik het goed zie, die van de programmeurs; de developers dus. Het soort AI dat achter ChatGPT zit wordt op dit moment bijvoorbeeld door Microsoft geïntegreerd in veel producten, zoals de Office-suite, de zoekmachine Bing, maar het spannendste: in GitHub. Als je alvast een idee wil krijgen van wat dat gaat betekenen kan je bij de vrij te gebruiken AI van ChatGPT terecht.
Gewoon voor het idee zocht ik een simpel en willekeurig programmaatje in C op internet. Ik vond dit:
#include <stdio.h>
void tropisch_checker(int temp)
{
if (temp >= 30)
{
printf("Het is een tropische dag, denk eraan dat je genoeg drinkt!");
}
else
{
printf("Het is geen tropische dag.");
}
}
int main()
{
int temperatuur = 29;
tropisch_checker(temperatuur);
return 0;
}
Nog voor ik een vraag stelde begon ChatGPT de werking van dit programma in detail uit te leggen, en gaf vervolgens al even ongevraagd aan dat het een vrij zinloos programma is, omdat de uitkomst altijd hetzelfde is. De temperatuur wordt immers al in het programma zelf opgenomen.
Vervolgens vroeg ik ChatGPT het programma te herschrijven, zodat de gebruiker de invoer kan geven, en dat in een aantal serieus exotische talen. Onder andere in PHP, APL, Lisp, Prolog, COBOL voor een OS/370 systeem, en een programmeertaal die ChatGPT zelf mocht kiezen voor de AS/400 en "Brainfuck" (zoek maar eens op, het is een bizarre taal, die desalniettemin alles kan). ChatGPT koos voor RPG voor de AS/400, weigerde Brainfuck compleet uit te werken omdat dat een veel te lang programma zou worden (correcte analyse!), schreef alle gevraagde programma's verder foutloos en gaf er meteen een analyse en uitleg bij. Tenslotte vroeg ik het programma te herschrijven in Python 3 voor een Raspberry Pi met een Sense HAT, waarbij de temperatuur door de Sense HAT wordt geleverd, en deze rood kleurt bij tropische temperaturen en groen bij normale temperaturen. Ook dat ging allemaal probleemloos.
Het interessante is niet zozeer dat ChatGPT dit simpele programma naar andere talen kon omzetten. Ook de analyse van de werking is nog niet eens zo heel spannend. Wat wel spannend is, zijn twee dingen:
- ChatGPT herkende, ongevraagd, de denkfout uit het originele programma. Let op, geen syntax-fout, geen programmeerfout, maar een denkfout. Vervolgens kwam ChatGPT probleemloos met de oplossing.
- ChatGPT herschreef het programma uiteindelijk in Python met nieuwe wensen, die niet al te netjes geformuleerd waren in gewoon Nederlands. Foutloos in zowel begrip van het gevraagde, als in de oplossing voor een nogal specifiek systeem.
Wie denkt dat dat niet spannend is, moet de consequenties hiervan toch echt beter overdenken!
Een paar resultaten:
Lisp:
(defun tropisch-checker (temp)
(if (>= temp 30)
(format t "Het is een tropische dag, denk eraan dat je genoeg drinkt!")
(format t "Het is geen tropische dag.")))
(defun main ()
(let ((temperatuur (read-from-minibuffer "Voer de temperatuur in: ")))
(tropisch-checker temperatuur)))
(main)
Prolog:
tropisch_checker(Temp) :-
Temp >= 30,
write('Het is een tropische dag, denk eraan dat je genoeg drinkt!').
tropisch_checker(Temp) :-
Temp < 30,
write('Het is geen tropische dag.').
main :-
write('Voer de temperatuur in: '),
read(Temp),
tropisch_checker(Temp).
APL:
∇ tropisch_checker
⍝ Vraag de gebruiker om de temperatuur in te voeren
temp ← ⎕⎕ 'Voer de temperatuur in: '
⍝ Controleer of de temperatuur hoger is dan of gelijk aan 30 graden Celsius
:If temp ≥ 30
⎕←'Het is een tropische dag, denk eraan dat je genoeg drinkt!'
:Else
⎕←'Het is geen tropische dag.'
:EndIf
∇
⍝ Roep de functie aan
tropisch_checker
Python met aanpassingen voor de Sense HAT:
from sense_hat import SenseHat
sense = SenseHat()
def tropisch_checker():
# Haal de temperatuur op van de Sense HAT
temp = sense.get_temperature()
if temp >= 30:
# Verander de achtergrondkleur van de Sense HAT naar rood
sense.clear((255, 0, 0))
print("Het is een tropische dag, denk eraan dat je genoeg drinkt!")
else:
# Verander de achtergrondkleur van de Sense HAT naar groen
sense.clear((0, 255, 0))
print("Het is geen tropische dag.")
# Roep de functie aan
tropisch_checker()
Gerelateerd

De TSR en protected mode
Arnout van Kempen over rommelen in een digitale wereld.

IBM-pc en MS-DOS
Arnout van Kempen over rommelen in een digitale wereld.

Nogmaals ons programmaatje
Arnout van Kempen over rommelen in een digitale wereld.

De uitdagingen van de 8086
Arnout van Kempen over rommelen in een digitale wereld.

Programmeren van de 8080
Arnout van Kempen over rommelen in een digitale wereld.