- AI-assistert koding kommer til å få en rolle som et nyttig verktøy for utviklere, og som kan redusere tid brukt på «dum» kode, sier Arne Molland, konsulent i Sonat Bergen, til kode24.
Kunstig intelligens (AI) blir i økende grad et verktøy som mange utviklere benytter seg av. For noen uker siden meldte GitHub at AI-assistenten deres Copilot står for 30 prosent av ny kode i noen programmeringsspråk.
Men det finnes også en rekke andre AI-assistenter, slik som Kite, Tabnine, AIXCoder og Jedi.
«Også her er Copilot et godt hestehode foran konkurransen.»
Alltid på
GitHubs Copilot er tilgjengelig som en utvidelse for Neovim, JetBrains og Visual Studio Code. Copilot virker med et bredt utvalg av kodespråk og rammeverk, men det skal virker særlig bra med Go, Java, Ruby, Python, TypeScript og JavaScript.
Copilot lar deg skifte mellom ulike forslag til kodesnutter, og velge hvilke du skal akseptere eller avvise - eller redigere forslagene. Copilot tilpasser seg til endringene du gjør, og matcher kodestilen din, ifølge GitHub.
- Jeg har brukt Copilot siden juli, og har brukt det i både profesjonell og personlig sammenheng. Det er et verktøy jeg stort sett alltid har på, og som fungerer som et komplement til normal code completion og IntelliSense, sier Molland.
Studie: Github Copilot kan gi opptil 40% farlig kode
God hjelp
Ifølge Molland er det mest overraskende ved Copilot hvor godt det ser mønstre i koden. Han sier at assistenten derfor kan være god hjelp når man skriver repetitiv kode.
- Og noen ganger har Copilot korrekt foreslått en hel funksjon basert på navnet, forteller utvikleren.
Molland trekker fram at i likhet med lignende verktøy, som Kite og TabNine, er det større sjanse for feil desto mer kode AI-assistenten foreslår.
- Men også her er Copilot et godt hestehode foran konkurransen, etter min erfaring. Man bør forvente feil dersom Copilot skal skrive logikk, mens det virkelig skinner når man skal skrive mye lik kode med små variasjoner, sier Molland.
Samtidig tror ikke Molland at AI-basert kode kommer til å ta opp store deler av våre kodebaser i nær framtid.
«Har også lest at Copilot fort kan foreslå kode med sikkerhetsproblemer.»
Lovlige implikasjoner
Ifølge Molland handler utfordringene til Copilot hovedsaklig om treffsikkerhet - særlig når det handler om logikk. Han sier at han har fått servert flere linjer med kode om gangen, men trekker fram at man i slike tilfeller må forvente småfeil i koden.
- Copilot har kanskje ikke hjulpet meg å bli en bedre koder, men for meg er det et verktøy for å bli en mer effektiv koder.
Moland forteller at han er nysgjerrig på de lovlige implikasjonene ved at Copilot er trent på lisensiert kode, men viser til at det enda ikke er rettslig presedens på problemstillingen.
- Om det dukker opp, blir det spennende å se hva det vil si for Copilot og lignende verktøy.
Skeptisk til Tabnine
Snorre Magnus Davøen, utvikler i Go Fjords, forteller at han tidligere har bukt gratisversjonen av AI-assistenten Tabnine både til jobb og fritidssammenheng. Tabnine er basert på GPT-2, som ble lansert av OpenAI i 2019, og åpen kildekode.
- Den fungerer nok ikke like bra som GitHub Copilot. Forslagene var så som så. Den kunne plukke opp mønstre i mye brukt kode, men alt i alt var det ikke nyttig nok til at jeg fortsatte å bruke den, sier han.
Davøen er derfor skeptisk til å bruke AI-assisterte kodeforslag.
- Det viser seg at verktøy som Copilot nokså enkelt kan ende opp med å foreslå kodesnutter som den er trent på ordrett. Denne koden kan være knyttet til lisenser som ikke tillater kopiering.
Davøen legger til at det ikke er sikkert at korte utsnitt av koden er kopibeskyttet.
- Har også lest at Copilot fort kan foreslå kode med sikkerhetsproblemer, siden den jo trenes på åpne Github-repoer. «Garbage in, garbage out», som man sier.
Ukas kodevitser får Jørgen og Ole Petter til å fnise
Spart mange tastetrykk
Christian Lundheim, utvikler i PT Engineering, er fornøyd med IntelliSense, AI-assistenten, i Visual Studio 2022.
- Forslagene til kode treffer bra i forhold til det man skal gjøre i 70% av tilfellene.
Han legger til at assistenten er ikke-intrusiv slik at at forslagene ikke skal forstyrre eller bli lagt inn ved feiltakelse.
- Kombinert med den "gamle intellisensen" (Alt + Enter refactoring), som jeg har blitt veldig bortskjemt og bruker hele tiden, er det mange tastetrykk spart i løpet av en dag.
- Har den hjulpet deg til å bli en bedre koder?
- Ikke nødvendigvis bedre, men mest sannsynlig litt raskere.
Semantiske problemer
Ifølge Lundheim gjenstår det fremdeles noen utfordringer: Assistenten leverer fortsatt noen forslag som ikke er semantisk korrekt.
- Den kan for eksempel foreslå å fylle inn parametere som har feil type.
Han mener at det burde vært en bedre sjekk av foreslått innhold mot dataene fra Roslyn og Microsoft.CodeAnalysis, sier han.
- Ikke nødvendigvis mot klassene i egen kode, da jeg ofte trykker Alt+Enter etterpå for å generere de parameterne/metoden som manglet. Men klasser i andre pakker endres normalt ikke.
Lundheim sier at per dags dato er assistenten nyttig for å generere «noen linjer her og der»:
- Men potensialet er større etter litt videreutvikling for å generere større moduler, sier han.