4 min Devops

Kotlin 2.0 pronkt met snellere compilatietijd: wat te verwachten?

Kotlin 2.0 pronkt met snellere compilatietijd: wat te verwachten?

De Kotlin 2.0-programmeertaal is door JetBrains vrijgegeven voor het grote publiek. In de tweede versie draait het voornamelijk om een snellere compiler. Kotlin-coders lijken daar zeer enthousiast over te zijn. Een terechte emotie, tonen de benchmarks van JetBrains.

Voor Kotlin 2.0 werd de eerste versie volledig vergeten en werkte JetBrains een nieuw concept uit. Developers mogen dus veel nieuwe zaken verwachten. De snellere compilatietijd wordt onder ontwikkelaars gezien als de grootste vooruitgang van de programmeertaal. Ontwikkelaars struikelden eerder over de compilatietijd die significant langer in beslag nam dan deze van concurrent Java.

Snelheidswinsten tot 94%

Hoe is de compilatietijd er nu concreet op vooruitgegaan? JetBrains gaf vorige maand al benchmarks vrij, om het publiek alvast warm te maken voor de officiële release. De nieuwe K2-compiler belooft aanzienlijke verbeteringen in de compilatiesnelheid, met snelheidswinsten tot wel 94% in bepaalde projecten. Deze indrukwekkende prestatieverbeteringen zijn het resultaat van een nieuwe type-inferentie-algoritme en een verenigde datastructuur die de efficiëntie van de compilatie verhoogt​.

Verdere testen voor het Anki-Android-project -een opensource-project- toonden aan dat de ‘clean build‘-tijd van 57,7 seconden met Kotlin 1.9.23 werd gereduceerd tot 29,7 (!) seconden met de nieuwste versie. Met deze tijd verwijzen programmeurs naar de tijd die nodig is om een volledig nieuw project te bouwen, dus zonder hergebruik van bronbestanden uit een eerder project.

De grafiek toont de Kotlin-compilatietijd voor een clean build met Anki-Android. Bron: JetBrains

JetBrains bewees verder dat de compiler sneller is bij de fases van initialisatie en analyse. “De initialisatiefase is tot 488% sneller met de K2-compiler. De Kotlin K2-compiler is tot 376% sneller in de analysefase vergeleken met de vorige compiler.” Deze prestatiewinsten zijn voor programmeurs in de praktijk moeilijker op te merken, doordat deze fases nooit veel tijd in beslag namen. Het gaat in de initialisatiefase bijvoorbeeld om een versnelling van 0,126 seconden naar 0,022 seconden voor het Anki-Android-project.

De grafiek toont de verder verdeelde prestatiewinsten voor de initialisatie- en analysefase. Bron: JetBrains

In een Reddit-discussie rondom de nieuwigheden in Kotlin 2.0 somt een gebruiker nog bijkomende voordelen op. “De nieuwe compiler heeft een betere type-inferentie, wat resulteert in schonere code en de prestaties van de gecompileerde code zijn iets sneller.” Dit wijst erop dat de verbeteringen niet alleen de compilatietijd beïnvloeden, maar ook de overzichtelijkheid en efficiëntie van de uiteindelijke code verbeteren.

Overstappen naar Kotlin 2.0

De overgang naar Kotlin 2.0 is een belangrijke stap voor ontwikkelaars. JetBrains heeft een uitgebreide migratiegids opgesteld om deze overgang zo soepel mogelijk te laten verlopen. Vanaf dat de Kotlin 2.0-versie wordt gebruikt, draait deze sowieso op de Kotlin K2-compiler, daar hoeft de developer niets voor te doen. Om nog meer inzichten te halen over build-prestaties met Kotlin 2.0, moet de Kotlin-versie in de Gradle- of Maven-buildscripts een handmatige update van de developer krijgen.

In de nieuwe versie is er verder meer aandacht voor multiplatform-ontwikkeling. In dit type ontwikkeling wordt aan een app gebouwd die compatibel is met meerdere platformen, een voorbeeld hiervan is Minecraft. Concreet werd de tooling verbeterd voor Kotlin Multiplatform (KMP). Google heeft app-ontwikkelaars voor Android al aangeraden over te stappen naar KMP en biedt voortaan ondersteuning voor KMP in verschillende populaire Android-libraries. De steun is belangrijk voor de programmeertaal, aangezien Kotlin de voorkeursprogrammeertaal is voor Android en dus een groot deel van de Kotlin-gebruikers apps programmeren voor het besturingssysteem van Google.

Kotlin 2.0 voorspelt een significante stap te zijn in de evolutie van de programmeertaal. De verbeterde compilatietijd zal ongetwijfeld bijdragen aan de tevredenheid van ontwikkelaars wereldwijd. Eerste reacties uit de community van Kotlin-developers wijzen er alvast op dat developers staan te springen om met Kotlin 2.0 aan de slag te gaan.

Overigens zijn niet alle kenmerken van de eerdere versie van de programmeertaal over boord gegooid. De basis van Kotlin rust nog steeds op Java. De programmeertaal draait onderhuids op de Java Virtual Machine, op hetgeen het ooit ook startte als een programmeertaal. Kotlin biedt dan ook Java-ondersteuning, ook al zijn deze programmeertalen in essentie concurrenten van elkaar.

Lees ook: Hoe de Kotlin-programmeertaal Android heeft veroverd