Copilot: Programmeren met AI

Hoewel er nog genoeg twijfels zijn over de echte impact van AI, is er één sector waarin het effect niet meer te ontkennen is: softwareontwikkeling. VORtech is snel met de nieuwe AI-mogelijkheden aan de slag gegaan. Maar wel met de nodige waarborgen want er zijn wel degelijk risico’s. 

Er wordt bij VORtech veel gebruik gemaakt van Github Copilot, een tool die is ontwikkeld door het bekende bedrijf OpenAI (van ChatGPT) en Github, de site waar heel veel open source ontwikkelaars hun programmatuur bewaren. De AI is getraind op basis van de publiekelijk beschikbare programmatuur op Github en andere bronnen, waardoor het diverse programmeertaken kan ondersteunen. 

Het meest laagdrempelig is de autocomplete functionaliteit, waarmee je als programmeur suggesties krijgt over het vervolg van de regel code die je aan het typen bent. Net zoals veel mensen dat nu al gewend zijn in bijvoorbeeld Word en Whatsapp, maar dan specifiek voor de programmeertaal waarin je werkt.  

Maar Copilot kan veel meer. Het kan documenteren, codekwaliteit verbeteren, unit testen maken, helpen bij het fixen van bugs en zelfs complete programma’s schrijven op basis van een beschrijving van de functionaliteit.   

Bedenkingen 

VORtecher Martina Pippi was een van de eerste collega’s die hiermee aan de slag ging. Martina: “Er waren in het begin best wat twijfels of we dit konden gaan gebruiken. Veel van ons werk is vertrouwelijk en de programmatuur waar we aan werken mag nooit buiten de deur komen en zeker niet bij OpenAI. Maar daar is een oplossing voor: je kunt aangeven dat Copilot jouw code niet mag gebruiken. Dan nog is het een harde eis bij VORtech dat we geen letterlijke stukken klantcode aan Copilot laten zien. Iedereen is zich daar enorm bewust van.” 

Een ander risico is dat je ongewild stukken code gaat gebruiken waar andere mensen auteursrecht op hebben. Als Copilot een suggestie voor een codefragment doet, dan zou dat zo maar een exacte kopie kunnen zijn van iets wat Copilot gebruikt heeft om te leren. VORtech heeft deze optie uit staan; dan checkt Copilot bij elke suggestie of dat niet ergens letterlijk voorkomt in openbare code. Als dat wel het geval is dan wordt de suggestie niet gegeven. 

Los van deze risico’s is de correctheid van de suggesties nog een belangrijk aandachtspunt. De tool is nog niet perfect en levert soms verkeerde suggesties. Het blijft dus opletten voor de programmeur.  Een studie van eind ’23 vond dat maar liefst 52% van de antwoorden die ChatGPT gaf op programmeervragen fout was. Dat zal inmiddels zeker wel aanzienlijk verbeterd zijn, maar het blijft een aandachtspunt. Zeker voor programmeertalen waar Copilot minder goed in is, zoals bijvoorbeeld Fortran, Delphi of Matlab. En juist deze talen komen bij VORtech nog regelmatig voor omdat we veelal doorbouwen op bestaande programmatuur. 

Andere vaardigheden 

Daarbij speelt mee dat je als ontwikkelaar de juiste vragen moet stellen aan Copilot, wat wel aangeduid wordt met de term prompt engineering. Omdat je deels in natuurlijke taal met Copilot praat, zul je goed moeten begrijpen hoe Copilot jouw vragen interpreteert en welk antwoord je precies zoekt. 

Ondanks de genoemde risico’s blijft Copilot een geweldige tool die de productiviteit van de ontwikkelaars enorm verhoogt. Copilot zorgt ervoor dat de ontwikkelaars zich kunnen concentreren op de meer creatieve en kennisintensieve kanten van het programmeren, zoals programmatuurontwerp en het vinden van algoritmes met de juiste nauwkeurigheid en robuustheid.  

Daardoor veranderen ook de vaardigheden die je als programmeur nodig hebt. Je wordt minder een veredelde typist en gaat meer gebruik maken van je expertkennis en skills om met klanten en gebruikers te overleggen. Dat was altijd al datgene waar de VORtechers zich mee onderscheiden dus in die zin maken de huidige ontwikkelingen het werk bij VORtech alleen maar interessanter. 

Iedereen programmeur, maar dan … 

Overigens staan de ontwikkelingen niet stil. In een interessante video vertelt Github CEO Thomas Dohmke over Github Copilot Workspace, waarmee mensen in natuurlijke taal kunnen ‘programmeren’. Daarvoor is dan helemaal geen kennis van een programmeertaal meer nodig. Dit sluit aan op de trend naar low-code of zelfs no-code. Het is de vraag hoever deze ideeën toepasbaar zijn op rekenprogrammatuur, maar ook daar zien we dat er inmiddels zoveel bibliotheken beschikbaar zijn dat we steeds minder nieuwe code hoeven te maken. 

Het is fascinerend dat programmeren daarmee voor een veel bredere groep mogelijk wordt. Maar het nadeel is natuurlijk wel dat al die programmatuur gemanaged moet worden. Nu al wordt VORtech regelmatig ingeschakeld door bedrijven om te helpen om het beheer van hun software in te richten. Die behoefte zal alleen nog maar sterker worden. Zeker nu programmatuur steeds meer een strategische asset wordt.  

Kortom, het zijn interessante tijden voor softwareontwikkeling.