Java har lenge vært kongen på tronen i IT-Norge og blir brukt på utallige prosjekter.
Miljøet rundt Java er modent og vi har gode rammeverk. Java er trygt og kjent, og Java Virtual Machine (JVM) er en god platform. Java og plattformen fungerer.
Så hva er problemet?
Java er teknisk gjeld, og det er på tide å modernisere stacken.
«Slutt å skriv ny Java-kode. Ta steget, og skriv den nye koden din i Kotlin.»
Gammel kode i Java, ny i Kotlin
Det finnes mange typer av teknisk gjeld, og en av de vanligste er dårlig kode, men teknisk gjeld er så mye mer:
Det er JavaScript-appen som ikke er over på TypeScript, det er den bygg-serveren din som ikke har blitt modernisert på flere år, det er den testen du burde ha skrevet men ikke har fått gjort enda, og det er Java-koden din.
Teknisk gjeld er et kjempenyttig verktøy, og uten teknisk gjeld vil det å utvikle gode løsninger ta mye lengre tid. Vi tar snarveier, tar opp et lån i form av teknisk gjeld, lager gode løsninger og vurderer om den gjelden vi har tatt opp må betales tilbake, eller om vi kan leve med litt gjeld. Ha et forhold til hvor mye teknisk gjeld som er greit for ditt prosjekt!
Vi har mye Java-kode, og oppfordringen min er ikke å kaste den Java-koden vi bruker i dag.
Men det å skrive en ny frontend-applikasjon i JavaScript og ikke TypeScript i dag, er teknisk gjeld. Og det samme vil jeg si for Java.
For i dag finnes det et moderne alternativ til Java: Kotlin! Så min oppfordring er: Slutt å skriv ny Java-kode. Ta steget, og skriv den nye koden din i Kotlin.
Vi spurte utviklerne på JavaZone når de sist programmerte i Java
Hvorfor velge Kotlin?
Den gode nyheten er at man kan bruke Java og Kotlin i samme prosjekt:
Kotlin har ekstremt god interop med Java, og det vil si at man kan innføre ny Kotlin-kode uten å måtte tilpasse den gamle Java-koden din.
Man kan bruke Java-kode fra Kotlin, og Kotlin-kode fra Java, som om det skulle vært samme språk.
Så hva er fordelen med å gå over til Kotlin, og hva kan Kotlin tilby som Java ikke kan?
Fordelene med Kotlin
Digg syntaks. Kotlin introduserer mye syntakssukker. Default arguments, lambdas med implicit arguments, data classes, let/apply for å lage nye scopes, expression functions og extension functions. Det er rett å slett for mye til å liste. Sjekk Kotlin Syntax og Kotlin Idioms for eksempler.
Et bedre standard library. Standard-librariet til Kotlin inneholder en haug med funksjoner som gjør livet enklere. Jeg blir stadig overrasket over at akkurat den funksjonaliteten jeg trenger dukket opp på autocomplete. Liste-APIet inneholder blant annet associate, groupBy, chunked og mapIndexed for å nevne noen.
String templates. Ikke noe mer StringBuilder, i Kotlin har man muligheten til å bruke string-templates. Både for enkle tekster, men også for tekster som går over flere linjer. "Det er ${positivtOrd}!"
Smart-casting. Kotlin kompilatoren er smart. Når man har sjekket en type med if/when vil kompilatoren forstå det det vi jobber med er typen vi sjekket mot. Ikke noe unødvendig type-casting påkrevd.
«Læringskurven er lav, og med Kotlin vil du få en mye bedre utviklingsopplevelse.»
Null-safety. Null-håndtering er innebygd i typesystemet og gjør det mye enklere å håndtere nullable-types. Ingen* flere NullPointerExceptions og try/catches for å håndtere null er en ting av fortiden. (* obs: man kan fortsatt få NPE når man jobber mot Java-kode)
Bedre støtte for generics. Kotlin kommer med bedre støtte for generics. Med inline reified types kommer man seg rundt problemet med type-erasure og man kan sjekke typer på generics i runtime som i Java ville vært borte.
Nye måter å strukturere koden på. Extension functions som et alternativ til utils-funksjoner som lar deg utvide funksjonalitet på kode utenfor kodebasen du er i. Funksjoner som first class citizens. Og ingen en-til-en relasjon mellom klasse og fil.
… og mye mere. Sjekk ut den offisielle dokumentasjonen for mer snacks!
Tusenvis av utviklere fylte Oslo Spektrum igjen - se bildene fra JavaZone 2022
Start med Kotlin!
Ta steget: Tør å ta steget til å skrive ny kode i Kotlin og slutt med Java.
Du kan fortsatt bruke de kjente bibliotekene, rammeverkene og den eksisterende Java-koden din. Læringskurven er lav, og med Kotlin vil du få en mye bedre utviklingsopplevelse.
Språket er moderne, plattformen er den samme, syntaksen er digg og du vil få nye verktøy for å skrive vakker og lesbar kode.
Så hva venter du på? Start med Kotlin i dag!