Kotlin

Det begynte med en workshop. Nå sprer Kotlin seg som ild i tørt gress i Finn.no

Flere og flere dropper Java i Norges mest lønnsomme IT-avdeling.

Arild Nilsen  (t.v) og Sjur Milliseth har begge vært pådrivere for å få Kotlin i bruk i utviklingsavdelingen.
Arild Nilsen (t.v) og Sjur Milliseth har begge vært pådrivere for å få Kotlin i bruk i utviklingsavdelingen. (Foto: Erlend Tangeraas Lygre)

Flere og flere dropper Java i Norges mest lønnsomme IT-avdeling.

Hei, dette er en Ekstra-sak som noen har delt med deg.
Lyst til å lese mer? Få fri tilgang for kun 235,- i måneden.
Bli Ekstra-abonnent »

Det kjører på Java Virtual Machine (JVM). Det virker på Android. Det fungerer med Java-biblioteker og man kan skrive tilnærmet Java-kode i det. 

Men Java, det er det ikke.

Funksjonelle Kotlin kommer nemlig med lovnader om moderne syntaks, færre type-deklarasjoner og et liv uten «The Billion Dollar Mistake» - NullPointerException. 

 – Det blir færre feil når man skriver i Kotlin. Du kan velge å skrive funksjonelt, eller du kan skrive tilnærmet Java-kode. Det er det som gjør det så praktisk, forklarer Finn.no-utvikler Arild Nilsen.

Startet med internkurs

I fjor holdt han og et knippe andre entusiaster innen funksjonell programmering et internt kurs hos rubrikkgiganten. I ettertid kastet flere og flere kolleger seg på. 

– Bare så det er klart: Vi er fremdeles i all hovedsak en Java-sjappe. Men nå skrives en god andel av den nye koden i Kotlin, forklarer utviklerkollega Sjur Millidahl.

Forrige uke skrev vi om Finn.no, som vi kåret til Norges mest lønnsomme IT-ansatte. Internt benytter de seg av mikrotjenester (microservices). Det vil si at koden består av flere mindre moduler. Der det lar seg gjør, får utviklerne selv bestemme hvilken teknologi de mener løser oppgavene best.

Den muligheten har de i høyeste grad benyttet seg av. Nå kan godt over 20 av de totalt 140 Finn.no-utviklerne kalle Kotlin sitt arbeidsspråk.

Tatt inn i varmen av Google

Kotlin

Lansert i 2011 av Jetbrains, tidligere IntelliJ.

Lages av et utviklingsteam i Sankt Petersburg i Russland.

Laget da utviklerne savnet funksjonalitet i Java. Det eneste som oppfyllte kravene deres var språket Scala, men dette kompilerte for sakte, ifølge dem.

Har som uttalt mål å kompilere like raskt som Java.

Kjører over Java Virtual Machine (JVM). Kan kompileres til Javascript eller over LLVM.

Har lambda-funksjonalitet og evne til å bestemme datatyper uten at de deklareres.

De er langt fra alene – JVM-jyplingen ser ut til å spre seg som ild i tørt gress etter det ble offisielt støttet av Google på selskapets I/O-konferanse i fjor. Kotlin ble et såkalt førsteklasse-språk for Android.

– Google er jo toneangivende. Man føler seg mye tryggere på å gå over til en ny teknologi når en såpass tung aktør stiller seg bak, sier Nilsen. 

I månedene etter Google stilte seg bak teknologien, har de klatret opp på en 44. plass på TIOBEs kåring av de mest populære programmeringsspråkene. De hadde også høyest prosentvis vekst av alle språkene på listen. Til sammenligning ligger Haskell på 43.-plass og Scala på 32.-plass på listen.

Ikke nok med det. Programmeringsspråket ble kåret til «best likte språk» i RebelLabs sin kåring over hvilke språk utviklerne trivdes best med å jobbe i. 

Artikkelen fortsetter under kodeeksempelet.

Kotlin-kode sammenlignet med Java-kode. Eksempelet er fra Finn.nos kodebase.

– Veldig praktisk

Mens andre språk gjerne oppstår i akademia, skal Kotlin ha utvikleren og økosystemet i hovedsetet. Man kan blant annet konvertere Java-kode ved en «ett-klikks-metode».

– Det er jo veldig praktisk hvis man sitter på Java-kode fra før. Kodekonverteringen fungerer alt i alt veldig bra så lenge det er ren Java-kode man konverterer. Bruker man mange ulike rammeverk kan det være at man må inn og ordne ting manuelt. Men alt i alt er verktøystøtten god, oppsummerer Arild Nilsen.

– I Finn.no bruker vi mye Spring (et Java-rammeverk, red anm). Det er veldig godt støttet i Kotlin, skyter Millidahl inn. 

Kotlin skal gjøre veien til funksjonell programmering kortere enn konkurrerende teknologier, som for eksempel Scala.

I mange tilfeller kan kodemengden reduseres drastisk sammenlignet med Java.

– Her legger Kotlin seg et sted i mellom (Java og Scala, red anm). Den har en syntaks som Java-utviklere kjenner seg igjen med, samtidig har det egenskapene til et moderne funksjonelt programmeringsspråk, forklarer Nilsen.

«The Case Against Kotlin»

Så da er det vel bare å kaste seg på Kotlin-bølgen med en gang?

Mja. Som med all ny teknologi er det visse forbehold man bør ta. Også med Kotlin, viser det seg.

For det første koster det å innføre nye språk, uansett hvilket. Folk må læres opp. Kode må konverteres. Tid må brukes.

Og selv om det ligner på Java, er det ikke helt likt Java.

I sommer la Pinterest om til Kotlin i sin Android-applikasjon. De anslår at det tar en utvikler omlag en uke før han/hun blir produktiv i språket. Etter dette kan det ta måneder før man er på samme nivået som man var med Java.

I et innlegg på Medium kalt «The Case Against Kotlin» lister de opp erfaringer de har gjort seg.

  • Høyere byggetider (build times). Hos dem økte tiden med rundt en fjerdedel etter innføring av Kotlin.
  • Små bugs. De opplevde at inkrementerende bygg (incremental builds) ikke virket for alle utviklerne. Andre ganger fikk de feilmeldinger fra Kotlins prosesseringsverktøy for annotering (KAPT), som på mystisk vis hadde sluppet opp for minne. Feilene lå i utviklernes kode, men på grunn av liten kjennskap til teknologien, tok det lang tid å identifisere og rette opp feilene.
  • Manglende muligheter for statisk analyse. Dette er verktøy som sjekker at koden følger regler og konvensjoner.
  • Reverserbarhet. Mens det er lett å konvertere fra Java til Kotlin, er det langt mer komplisert å gå andre veien.

Riktignok dreier det meste av dette seg om voksesmerter, som med tid vil løse seg, konkluderer selskapet. 

OBS: Skjer det noe spennende i din utviklingsavdeling? Tips oss på tips@digi.no. Vi er et IT-nettsted for hele landet. Bedrifter utenfor det sentrale Østlands-området oppfordres derfor spesielt til å gi lyd fra seg!

Kommentarer (9)

Kommentarer (9)
Til toppen