AI-pair-programmeertools, ontworpen om de ontwikkeling te versnellen, bieden voordelen, variërend van suggesties voor eenvoudige coderegels tot de mogelijkheid om volledige applicaties te bouwen en te implementeren, maar de valkuilen zijn aanzienlijk.

Naast het verbeteren van de productiviteit door het verlichten van enkele van de meer alledaagse codeertaken, ervaren ontwikkelaars die AI-pair-programmeertools gebruiken minder frustratie en kunnen ze zich concentreren op meer bevredigend werk, volgens een GitHub-enquête onder 2000 ontwikkelaars. Er bestaat een reeks van deze tools, waaronder de releases van dit jaar GitHub Copilot, Amazon CodeWhisperer en Tabnine. Ze sloten zich aan bij een lange lijst van bestaande door AI aangedreven bots, zoals Kite Team Server, DeepMind’s AlphaCode en IBM’s Project CodeNet.

Hoewel AI-paarprogrammering veelbelovend is in het genereren van voorspelbare, sjabloonachtige code – herbruikbare codefragmenten zoals voorwaardelijke verklaringen of lussen – moeten ontwikkelaars de kwaliteit en geschiktheid van codesuggesties in twijfel trekken, zei Ronald Schmelzer, managing partner bij het CPMAI AI-projectbeheer certificering bij Cognilytica.

“Het loopt tegen veel problemen aan over het al dan niet toepassen van de code, gaten in de beveiliging en bugs, en talloze auteursrechtelijke problemen”, zei hij.

Valkuilen van AI-paarprogrammering

Ondanks de duidelijke voordelen – waarvan er vele werden uiteengezet in de GitHub-enquête – moeten ontwikkelaars op hun hoede zijn voor door AI voorgestelde code-aanvullingen omdat ze niet gegarandeerd nauwkeurig zijn, zei Chris Riley, senior manager ontwikkelaarsrelaties bij marketingtechnologiebedrijf HubSpot. Ontwikkelaars moeten alle suggesties nauwlettend in de gaten houden, wat elk opgeslagen zoeken op ontwikkelaarssites naar codefragmenten kan tenietdoen, zei hij.

Een ander punt van zorg is de draagbaarheid, zei Riley. Als een aanzienlijk percentage van de code door AI wordt voorgesteld, kunnen ontwikkelaars die code mogelijk niet ondersteunen als deze de oorzaak is van een productieprobleem, zei hij.

Naast vragen over toepasbaarheid en ondersteuning, introduceren bots voor het voltooien van code unieke beveiligingsproblemen. Hoewel sommige tools voor het voltooien van code, zoals Kite Team Server, achter de firewall van een bedrijf kunnen draaien, vertrouwen andere op openbare artefactrepository’s, die mogelijk onveilig zijn, zei Riley. Het kan bijvoorbeeld mogelijk zijn voor aanvallers om het model te misbruiken om zero-day-kwetsbaarheden binnen te sluipen, zei hij.

Door de gemeenschap verstrekte code voegt een ander potentieel belangrijk struikelblok toe: auteursrechtelijke problemen. Omdat programmeertools voor AI-paar worden getraind op een breed scala aan code met verschillende licentieovereenkomsten, wordt het moeilijk om het eigendom vast te stellen, zei Schmelzer van Cognilytica. Bovendien, als de codegenerator wordt getraind op gegevens van gedeelde coderepositories – met name GitHub – dan kunnen ontwikkelaars auteursrechtelijk beschermde of privécode mengen met openbare code zonder enige geïdentificeerde bron, zei hij.

De opkomst van AI-paarprogrammering

Veel van de problemen met moderne AI-pairing-programmeertools waren niet aanwezig in vroege code-aanvullingsproducten, zoals Microsoft’s IntelliSense, dat voor het eerst werd geïntroduceerd in 1996. Deze tools gaven ontwikkelaars eenvoudige type-ahead-aanvulling binnen de compiler of IDE, zonder openbare repository kwetsbaarheden of problemen met de ondersteuning. Ontwikkelaars zouden deze basiscode-aanvulling een stap verder kunnen brengen met linters – tools die eenvoudige syntaxisfouten kunnen voorkomen – om de voorgestelde code te controleren, zei Riley.

Ik denk niet dat we op het punt zijn dat deze tools verder kunnen worden gebruikt dan rapid prototyping, educatie en suggesties.

Chris RileySenior manager van ontwikkelaarsrelaties, HubSpot

“Ik denk niet dat ontwikkelaars op dit moment andere verwachtingen hadden, en we waren blij met de suggesties in Google-stijl terwijl je typte,” zei Riley. “Het was er om de efficiëntie te verhogen, niet om de eerste bron van de code te zijn.”

Moderne AI-paarprogrammeurs gaan verder dan eenvoudige code-aanvulling en linting door volledige codeblokken voor te stellen, zei Riley. de tools kunnen contextuele code-aanvullingen bieden of volledige functies schrijven; geavanceerde tekstgeneratoren aangedreven door OpenAI’s GPT-3 – zoals Copilot – kunnen volledige applicaties bouwen en implementeren en eenvoudige Engelse zoekopdrachten omzetten in SQL-instructies die in alle databases werken.

“Na een lange tijd sceptisch te zijn geweest over de echtheid van de AI-gestuurde code-aanvullingstools, moet ik toegeven dat het de eerste keer dat ik het probeerde surrealistisch leek. [Copilot]”, zegt Anthony Chavez, oprichter en CEO van Codelab303. “Ik had soms het gevoel dat het mijn gedachten kon lezen.”

Maar ondanks de technologische vooruitgang, betekenen de problemen rond moderne AI-codeaanvullingstools dat ze beperkt zijn in hun bruikbaarheid, zei Riley.

“Ik denk niet dat we op het punt zijn dat deze tools verder kunnen worden gebruikt dan rapid prototyping, educatie en suggesties,” zei hij.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *