UTVIKLING

Sjekket 925 Android-apper: De som var skrevet i Kotlin hadde «høyere kodekvalitet» enn Java

Færre «blobber» og «lommeknivklasser».

Med kompakt kode og en moderne syntaks kan Kotlin by på en enklere hverdag for Java-utviklere. Her er et eksempel fra Finn.no sin kodebase. Kotlin til venstre.
Med kompakt kode og en moderne syntaks kan Kotlin by på en enklere hverdag for Java-utviklere. Her er et eksempel fra Finn.no sin kodebase. Kotlin til venstre. Foto: Finn.no
3. aug. 2018 - 13:31

Et rikt økosystem, moderne funksjonalitet og 40 prosent mindre kode enn Java: Kotlin er på alles lepper om dagen. 

Språket har blant annet færre typedeklarasjoner, valgfrie semikolon og er fri for NullPointerException. Språket ligner ellers på Java, og kompilerer til JVM. Å flytte eksisterende javakode over til Kotlin er gjort på et klikk.

Nykommeren har raskt fått et fotfeste. I Norge er språket allerede på plass nummer 15 (ekstra) over språk utviklere behersker. 

Også i utlandet har overgangen vært raskt. I en studie gjort hos universitetet i Valenciennes i Frankrike har forskere sett på 925 Android-applikasjoner, og fant at 109 av disse var skrevet i – eller hadde innslag av – Kotlin.

  • I vår besøkte vi Java-sjappa Finn.no, hvor Kotlin har begynt å spre seg som ild i tørt gress. Les om deres erfaringer med språket i denne reportasjen (ekstra)

Sjekket koden for «antimønstre»

I studien ønsket de også å måle kvaliteten på koden som var skrevet helt eller delvis i Kotlin, og sammenligne den med appene skrevet i Java. 

For å få til dette så de etter antimønstre innen objektorientert programmering – også kjent som «dårlige løsninger på problemer».

Et klassisk antimønster, som mange utviklere har møtt på, er «The Blob». Blobben oppstår når alt for mange prosesser og oppgaver legges inn i én og samme klasse.

Andre antimønstre de testet for var «lommekniven» – hvor man forsøker å få en klasse til å utføre alle tenkelige oppgaver, uten at man nødvendigvis trenger dem. 

De testet også for en rekke antimønstre som var spesifikke for Android. Disse var «Heavy Broadcast Receiver, Heavy AsyncTask, Heavy Service Start, Init OnDraw (IOD), No Low Memory Resolver og UI Overdraw».

Verktøyet de benyttet for å teste koden går under navnet Paprika, og ligger åpent på Github.

Resultatet

I enkelte tilfeller kan kodemengden reduseres drastisk sammenlignet med Java.
I enkelte tilfeller kan kodemengden reduseres drastisk sammenlignet med Java.
Etter å ha analysert de 925 applikasjonene, fant forskerne ut at enten blobben, lommekniven eller de komplekse klassene var til stede i 92 prosent av både Kotlin og Java-appene. Faktisk var det flere Kotlin-apper enn Java-apper som hadde et antimønster. 
 
Men selv om flere Kotlin-apper hadde et antimønster, hadde de fleste av disse bare ett av de ti antimønstrene til stede. Samtidig inneholdt Java-applikasjonene hvor antimønstre var til stede, i snitt hele fire av ti slike antimønstre.
 
Artikkelen fortsetter etter annonsen
annonse
Innovasjon Norge
Da euroen kom til Trondheim
Da euroen kom til Trondheim
Med andre ord: Selv om noen flere Kotlin-applikasjoner inneholdt «dårlig» kode, var Java-appene som inneholdt dårlig kode langt dårligere enn Kotlin-appene som inneholdt dårlig kode.
 
Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.