Overslaan en naar de inhoud gaan

Waarom Facebook programmeertaal Kotlin verkiest boven Java

Facebook-moederbedrijf Meta heeft besloten om niet langer Java te gebruiken voor de ontwikkeling van zijn Android-apps, maar om met Kotlin te gaan werken. Volgens het bedrijf biedt de jongere programmeertaal een aantal belangrijke voordelen die Java niet heeft.
Programmeren in Kotlin
© Shutterstock.com
Shutterstock.com

Kotlin is een programmeertaal die in 2011 verscheen en gemaakt is door JetBrains. Dat bedrijf miste functionaliteiten in andere talen, dus besloot het zelf een alternatief te ontwikkelen. In 2016 verscheen de 1.0-release van Kotlin en niet veel later werd onder meer Google enthousiast. In 2019 begon Google Android-ontwikkelaars zelfs aan te moedigen om niet meer met Java, maar met Kotlin te gaan werken.

Ook Meta verkiest tegenwoordig dus Kotlin boven Java voor zijn Android-apps, vertelt Omer Strulovich, een software engineer bij Facebook, in een artikel op de website van Facebook, waarin hij ook ingaat op hoe de migratie in zijn werk gaat. De nieuwe taal vervangt steeds meer Java-code in Android-apps als Facebook, Instagram en Messenger. Wanneer de transitie precies begonnen is, vertelt hij niet. Maar de Android-codebase bevat inmiddels 10 miljoen regels Kotlin-code, en "de conversiesnelheid neemt toe".

Waarom Kotlin?

Dat Meta tegenwoordig liever met Kotlin werkt, is onder meer omdat Kotlin onder developers veel geliefder is dan Java. Volgens de Stack Overflow Developer Survey is Kotlin geliefd onder ruim 63% van de developers, terwijl Java onder slechts krap 46% geliefd is. Er zitten dan ook serieuze voordelen aan Kotlin, zegt Strulovich, die Java niet heeft.

Zo geeft Kotlin kortere en preciezere code. Gemiddeld neemt het aantal regels code in de migratie met 11% af, aldus de software engineer. Dat is echter wel minder dan verwacht: "We hebben online veel hogere cijfers gezien, maar we vermoeden dat die uit specifieke voorbeelden komen." 

Daarnaast heeft de taal 'nullability' ingebouwd. In Java kan het voorkomen dat een variabele niet naar een object verwijst - zoals de bedoeling is - maar naar niets of null; een zogeheten NullPointerException. Volgens Strulovich is dat een veelvoorkomend probleem dat wel op te lossen is, maar dat kost veel tijd. Kotlin heeft echter nullability ingebouwd, waarmee dit soort problemen voorkomen worden. Volgens Strulovich is dat veel robuuster en gemakkelijker om mee te werken.

Daarnaast biedt Kotlin een mogelijkheid voor functioneel programmeren zonder de snelheid op te geven, door inline functions en lambda expressions te ondersteunen. De Facebook-software engineer geeft toe dat Java 8 ook ondersteuning heeft voor lambdas, maar stelt dat dit voor slechtere prestaties zorgt op goedkopere Android-apparaten. 

Tot slot maakt Kotlin het mogelijk om een Domeinspecifieke taal (DSL) te definiëren. "In principe geeft ons dat de mogelijkheid om definities als Android XML's direct in de Kotlin-code te implementeren."

Transitie heeft nadelen

De transitie heeft echter ook minpunten, benadrukt Stulovich. "Het adopteren van een nieuwe taal kan betekenen dat we een lange tijd moeten leven met een codebase die uit twee talen bestaat. Kotlin interacteert erg goed met Java, maar af en toe komen er rare dingen omhoog."

Daarnaast wordt Java veel meer gebruikt wereldwijd, ook al is de taal minder geliefd onder ontwikkelaars. "Dat betekent dat er minder tools beschikbaar zijn. Erger nog: er zijn allerlei Kotlin-tools nodig voor de interoperabiliteit van Kotlin en Java, wat de implementatie bemoeilijkt."

Tot slot zijn de build times van Kotlin langer dan die van Java, omdat de taal en het ecosysteem complexer zijn. "En Java heeft een voorsprong van twee decennia om zijn compiler te optimaliseren", voegt Strulovich toe. "Aangezien we diverse grote apps hebben, kunnen de consequenties van langere build times een negatieve impact hebben op de ervaringen van onze ontwikkelaars." Toch blijken ook daar oplossingen voor te zijn, waardoor dit niet echt een probleem veroorzaakt. 

Reacties

Om een reactie achter te laten is een account vereist.

Inloggen Word abonnee

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in