#Klooienmetcomputers

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:

  1. 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.
  2. 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()

Gebruik GitHub om te klooien met de computer!

Wie mee wil doen met #klooienmetcomputers, maar niet alle teksten van Arnout wil overtypen, of de eigen code wil delen met andere lezers, kan dat doen via GitHub:

1. Maak een account op www.github.com

2. Zoek naar Abmvk/kmc

Het account Abmvk volgen kan ook.

Arnout plaatst daar alle stukjes code voor #klooienmetcomputers, met als naam eerst een volgnummer van het stukje waar de code bij hoort en dan een term uit de titel. Zaken die bijvoorbeeld in een config-bestand thuishoren plaatst hij als .txt bestand, wat overtypen kan besparen. Ook plaatst hij stukjes code waar hij zelf mee rommelt en die niet in een stukje op accountant.nl terechtkomen. Die stukjes zijn te herkennen omdat er geen volgnummer voor staat.

Lezers zijn vrij te gebruiken wat ze willen en om zelf zaken toe te voegen of aan te passen, vragen te stellen of commentaar te leveren. Samen kom je een eind. Om dit goed te laten werken: maak een clone van Arnout’s repo, haal met pull nieuwe bestanden binnen en voeg met push zelf toe. Wie er niet uitkomt: laat het Arnout weten.

Arnout van Kempen di CCO CISA is Senior manager Risk & Compliance bij Baker Tilly. Hij schrijft op persoonlijke titel. Hij is lid van de Commissie Financiële verslaggeving & Accountancy van de AFM en lid van de signaleringsraad van de NBA. Daarnaast is hij diaken van het bisdom 's-Hertogenbosch.

Gerelateerd

reacties

Reageren op een artikel kan tot drie maanden na plaatsing. Reageren op dit artikel is daarom niet meer mogelijk.

Aanmelden nieuwsbrief

Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.