Utvikler og daglig leder Kaare Nilsen i Arktekk driver konferansen flatMap(Oslo) og er over middels opptatt av funksjonell programmering. 📸: Privat
Utvikler og daglig leder Kaare Nilsen i Arktekk driver konferansen flatMap(Oslo) og er over middels opptatt av funksjonell programmering. 📸: PrivatVis mer

- Vi må forstå at funksjonell programmering er veien å gå

Ukas Koder Kaare Nilsen er så begeistra for funksjonell programmering at han kutter ut Java, linje for linje.

Hvordan begynte du med koding? 👶

Det begynner, som du kanskje gjetter, for ganske lenge siden. Jeg var 12 år da jeg fikk min første datamaskin, en Commodore 64, og da var jo spill veldig moro. På den tida var spillene sånn at det var overkommelig å tenke «dette kunne jeg laget selv, hvordan virker egentlig dette?». Den eneste måten å finne ut av det på var å lære seg å programmere. Det ble en besettelse jeg brukte stort sett hele ungdomstida på.

Senere fikk jeg noen betalte jobber for lokale bedrifter ved siden av skolen. Sommeren før jeg begynte på ingeniørhøyskolen teppebomba jeg alle selskaper i Norge som trengte IT-folk, og to uker ut i studiet fikk jeg napp hos politiet.

Jeg tenkte «skal jeg bruke masse penger på studier, eller tjene masse penger i jobb?»; så jeg flytta til Oslo, begynte å jobbe og har ikke snudd siden.

Hva er det første du husker å ha utviklet?

Dette er litt kleint, men: Jeg var veldig forelska i ei jente i nabolaget. Og på den tida var interaktive bøker veldig populære, hvor du i slutten av hvert kapittel kunne velge hvor du ville gå videre.

Så jeg lagde et sånt spill til henne, på Commodore 64 i Basic. Kom hun til slutten av spillet, ble vi sammen. Det gjorde hun, og vi var sammen i tre uker. Så jeg vil hevde at min første kjærlighet etter datamaskinen kom via datamaskinen.

Hva jobber du med akkurat nå? ☕

Nå jobber vi for Klaveness Digital, som jobber med forbedring og digitalisering av shipping. Vi lager blant annet et system for planlegging og skedulering av frakt.

Kaare Nilsen med en aldri så liten kaffeselfie blant kolleger i Klaveness Digital. 📸: Privat
Kaare Nilsen med en aldri så liten kaffeselfie blant kolleger i Klaveness Digital. 📸: Privat Vis mer

Vår forse er funksjonell programmering, og vi bruker i hovedsak Scala sammen med rammeverk som circe, fs2-streams, http4s og doobie. På frontend er de tidligste løsningene våre skrevet i ganske standard React og Redux, mens de nyeste skrives i Elm. Vi tar funksjonell programmering ut i frontend, også.

Vi har noe gammelt i Java, men det prøver vi å skrive bort linje for linje. Skal du først drive med funksjonell programmering, bør du kutte ut Java.

Hvordan ser en typisk arbeidsdag ut for deg?

Vi møtes når vi trenger å møtes, vi utvikler og snakker sammen, og det er veldig fritt. Vi har standup-møter, men bare så vi kan kommunisere sammen, og vi følger ikke noen bestemt mal. Vi er et lite team på ni utviklere som kjenner hverandre godt.

Hva synes du er de mest spennende språkene, rammeverkene eller teknologiene akkurat nå? ✨

Jeg foretrekker funksjonelle språk og rammeverk framfor noe annet.

Innenfor frontend synes jeg Elm er ganske spennende, men samtidig fryktelig kjedelig. Det er et veldig enkelt språk som er veldig bra designa for nettopp det. Men det at det er så enkelt, gjør det er vanskelig å lage gode abstraksjoner i det. Man møter fort veggen og det blir fort mye boilerplate.

Det jeg har veldig lyst til er å få utforsket Purescript i større grad. Det er nok det jeg synes er mest spennende på frontend om dagen.

På backend er det Scala som er mitt «weapon of choice». I Scala får jeg skrevet koden slik jeg føler den bør se ut. Scala er litt vanskelig å komme i gang med, men når en behersker det så er det et språk som gir deg fantastiske muligheter til å utvikle deg selv som utvikler. Det blir til syvende og sist dine egne begrensninger som setter stopper for hva du kan få til og ikke språket i seg selv. Så kommer en jo heller ikke fra at man må nevne Haskell når en snakker om funksjonell programmering. Et språk flere burde sette seg ned å lære.

Det skjer så mye spennende i funksjonell programmering nå at Norge etterhvert må forstå at det er veien å gå. De har ikke helt skjønt det ennå. Vi har en middelmådighetskultur, hvor ingen har lyst til å være i front av den teknologiske utviklingen.

«I en sånn kultur er det vanskelig å komme og si at man kan gjøre det bedre og billigere.»

Bransjen drives av konsulenter og rammeavtaler, som ønsker seg så mange mest mulig like mennesker som mulig. I en sånn kultur er det vanskelig å komme og si at man kan gjøre det bedre og billigere. Det irriterer meg litt, for om ingen skal være i front, hvordan får man da utvikling? Da skjer utviklingen andre steder, og det er dumt for framtida vår.

Hva er du mest stolt av å ha laget?

I perioden jeg holdt mye på med Java, var jeg veldig fornøyd med å være aktiv i javaBin -miljøet, og være fast foredragsholder i både javaBin og på Javazone.

Siden starta vi i Arktekk konferansen flatMap(Oslo) i 2012, som har bygd seg opp som en konferanse med internasjonalt rykte på seg som den funksjonell programmering-konferansen man bør komme på. Folk kommer fra hele verden, og Scala-skaper Martin Odersky har holdt keynote.

Det er synd at den blir litt glemt i Norge. De siste åra har det blant annet vært en stor vekst av folk fra Øst-Europa; det er tydelig at de har oppdaget funksjonell programmering, det er gøy.

Hva er det kjedeligste med å være utvikler? 😴

Jeg har måttet bytte jobb flere ganger for å få lov til å fortsatt være utvikler. For å slippe møtehelvete man får med andre idiotiske titler.

Det er også kjedelig om man står og ikke kommer noen vei, på grunn av politikk som hindrer meg å gjøre ting bedre. Om for eksempel arkitekten har bestemt at «vi skal gjøre det sånn», og jeg ikke får være den håndverkeren jeg vil være.

Hva er det gøyeste med å være utvikler? 😍

Jeg ser på utvikling som et håndverk. Når jeg har skrevet noe jeg tenker var midt i blinken, noe som gjorde systemet bedre og er skrevet på en estetisk fin måte, da koser jeg meg fælt.