Waarom je vandaag nog over moet stappen op Kotlin

By 9 april 2020Geen categorie

Waarom je vandaag nog over moet stappen op Kotlin

Eén van de nieuwere en meest prominente technologieën van vandaag de dag is Kotlin; een programmeertaal die is gebouwd om productiviteit bij het ontwikkelen van bedrijfsapplicaties te vergroten. Het verhogen van de productiviteit omtrent development is voor elk (software)bedrijf één van de belangrijkste verbeterpunten.

De mogelijkheid om sneller software te bouwen, zonder daarbij in te leveren op kwaliteit, levert een enorm concurrentievoordeel op in de markt en dat is nu precies de reden dat er in alle lagen van een bedrijf ruimte moet zijn voor verbetering. Met zijn vele interessante features lijkt Kotlin goed op weg om meer wijdverspreid te worden onder softwareontwikkelaars.

Bij INFO gebruiken we Kotlin al een tijdje en omdat wij geloven dat het inmiddels voldoende tractie heeft gekregen qua populariteit en integratie – én het een enorme impact heeft gehad op onze eigen development-tijd – vonden wij het tijd geworden om wat meer te vertellen over waarom het een goed idee is om deze waardevolle technologie in je eigen bedrijf te implementeren.

 

De populariteit van Kotlin

Er zijn in de loop der jaren een aantal Java Virtual Machine (JVM)-talen geïntroduceerd en hoewel Java de oudste is, heeft het nog steeds de voorkeur van de meeste programmeurs. Ondanks de sterke voorkeur voor Java is Kotlin de afgelopen jaren enorm populair geworden. Volgens het JVM Ecosystem Report 2020 is het aantal Kotlin-developers toegenomen van 2,4% naar 5,5% en werd het de op één na populairste JVM-taal.

Eén van de redenen achter de populariteit van Kotlin is de naadloze integratie met Java, waardoor je er makkelijk op over kunt stappen. Ondersteuning door populaire frameworks, zoals Spring Boot, maakt het ook makkelijker om platforms te creëren die ready to go zijn. In hetzelfde rapport staat ook dat Spring het Java-ecosysteem domineert en dat zo’n 60% het gebruikt voor hun belangrijkste applicaties. Met de introductie van de 5.0-versie, kwam ook dedicated Kotlin-support in het Spring-netwerk en de volgende zin uit het officiële blog van Spring verzekert ons ervan dat deze samenwerking standhoudt: “Naast ondersteuning van het Spring Framework voor Java 8 dat Kotlin-applicaties kan gebruiken, zoals functionele web- of bean-registratie API’s, zijn er nog meer Kotlin-specifieke features die het mogelijk maken om een nieuw leven van productiviteit te behalen.”

Daarnaast heeft Google verklaart Kotlin volledig te ondersteunen en het uitgeroepen tot hun primaire programmeertaal voor native Android development. Deze verklaring werd zeer goed ontvangen door de professionele Android development community, aangezien meer dan 50% de voorkeur geeft aan Kotlin voor hun dagelijkse werkzaamheden.

Omdat Kotlin volledig interoperabel is met Java, wordt het voor software development teams die hun codebase stap voor stap willen overzetten steeds makkelijker om Kotlin te omarmen en het te gebruiken voor hun volgende project. Dit leidt tot nog een andere reden waarom de populariteit van Kotlin steeds verder toeneemt onder softwarebedrijven: veel grote bedrijven beginnen Kotlin toe te voegen aan hun tech stack. Bedrijven als Amazon, Google, Netflix, Uber, Foursquare en nog vele anderen hebben deze taal ontzettend snel geïmplementeerd waardoor ze uiteindelijk de aandacht trokken van jonge talenten die wel bij hun wilden werken. Wanneer een bepaalde technologie de aandacht weet te trekken van de grote spelers op de softwaremarkt, heeft dat invloed op de developers die graag in het diepe springen en nieuwe talen, tools en technieken uitproberen. En als het nieuwe dan beter is dan het oude, is de keuze snel gemaakt.

KotlinConf

KotlinConf 2019

De community achter Kotlin is zeer actief en groeit exponentieel. Er zijn zo’n 200 gebruikersgroepen wereldwijd die verschillende events, keynotes en workshops organiseren rondom het Kotlin-ecosysteem. De activiteit van deze community wordt actief ondersteund door de makers van Kotlin, JetBrains, die op hun beurt een jaarlijkse Kotlin-conferentie organiseren, KotlinConf. Hun laatste editie trok maar liefst 1700 bezoekers en de kaartjes waren al maanden voor het event uitverkocht.

Samenvattend: zoals de resultaten van de jaarlijkse developers-onderzoeken 2018 en 2019 van Stack Overflow laten zien, is Kotlin een van de meest geliefde talen en dat al twee jaar op rij!

 

De impact op productiviteit

De reden dat Kotlin zo goed werkt is dat het ontwerp van de taal vooral gefocust is om een programmeertaal zo productief mogelijk te maken. Door zich te laten inspireren door bestaande talen, heeft Kotlin een goede feature set die de development-tijd verkort. Er is veel werk in gestopt om ervoor te zorgen dat deze feature set tevens zeer toegankelijk is, waardoor de leercurve relatief klein is. Laten we er wat dieper induiken door nog iets technischer te worden…

Een goed voorbeeld van waarom dit een flinke impact heeft op productiviteit wordt gegeven tijdens een van de keynotes op KotlinConf door Christine Lee; Testing: Testing (kijktip!). Tijdens deze presentatie gebruikt Lee een meer gedetailleerde versie van de beroemde test-pyramide.

Test Pyramid

Gedetailleerde Test Pyramide door Christina Lee

Deze versie heeft wat extra lagen onder de goedkope Unit-laag, waarvan compileer-tijd en IDE-fouten de meest opvallende zijn.

Hoewel deze er in de eerste instantie niet uitzien als testen, kunnen ze wel degelijk gebruikt worden als manieren om bedrijfslogica op een relatief goedkope manier af te dwingen. Door typing te gebruiken, dwing je af dat de code op een specifieke manier uitgevoerd moet worden: als je probeert om een object op een onverwachte manier te instantiëren, zegt je IDE (of compiler) vanzelf dat er iets mis is. Het test je code inherent.

Typing is natuurlijk niet nieuw, het bestaat al een hele tijd. Het is echter wel één van de kernprincipes van Kotlin: het introduceren van veiligheid. Dit wordt gedaan door het aanbieden van sterke veranderlijkheidsregels door het gebruik van zowel objectgeoriënteerd als functioneel programmeren, met als meest opmerkelijke feature null safety. Volgens het onderzoek van OverOps is de meest bekende uitzondering in productiesystemen de beruchte ‘NullPointerException’. Door dit principe kunnen ontwikkelaars veel meer tijd en aandacht besteden aan de fouten die gevonden worden tijdens het compileren en door de IDE, wat weer resulteert in minder NullPointerExceptions en veel tijd bespaart.

Top10 Exeption Types

En dat blijkt! Eén van de grote ‘concurrenten’ van Kotlin is Java, aangezien ze allebei op JVM draaien. Echter, om dezelfde soort veiligheid te realiseren als bij Java (vergeleken met Kotlin) is veel meer code nodig. Het creëren van een simpele Java dataklasse met drie velden resulteert in ongeveer 70 regels code, bestaande uit ‘toString’, ‘equals’ en ‘hashCode’. Met Kotlin bestaat deze zelfde dataklasse, inclusief de methodes en functies, uit ongeveer vijf regels die exact hetzelfde bereiken, maar dan zonder boilerplate. Zoals wordt gezegd in het eerste hoofdstuk van het populaire boek Kotlin in Action: “beknoptere code kost minder tijd om te schrijven en – nog veel belangrijker – minder tijd om te lezen. Dit bevordert de productiviteit en zorgt ervoor dat je dingen sneller gedaan krijgt.”

 

De volgende stap

Hoewel de support van de community en de toename in productiviteit mooi zijn, is het niet makkelijk om daadwerkelijk over te stappen met je hele bedrijf: het is geen kwestie van even een knopje omzetten en dat je dan van het ene op het andere moment “helemaal Kotlin” bent. Echter, wij hebben nog wel een paar manieren om je te helpen bij de overstap:

  • Organiseer presentaties en/of workshops waarbij je kennis deelt en iedereen op hetzelfde kennisniveau houden;
  • Delegeer verschillende Kotlin features naar je team, waardoor iedereen een expert wordt op een specifiek gebied en waardoor kennis efficiënter gedeeld wordt;
  • Maak en deel hulpbronnen aan met daarin de verschillende uitdagingen die je tegen bent gekomen, hoe je deze opgelost hebt en hoe ze te voorkomen in de toekomst;
  • Herschrijf je bedrijfslogica, te beginnen met je minst kritieke componenten, terwijl je bestaande tests gebruikt om ervoor te zorgen dat alles nog werkt zoals het hoort. In onze ervaring zijn de dataklasses een goed startpunt.

Onze laatste blogs en artikelen ontvangen?
Schrijf je in voor onze nieuwsbrief!

Laat hieronder je naam en email achter

Blijf op de hoogte

Meld je aan voor onze nieuwsbrief en ontvang elke maand artikelen en blogs over innovatie en onze podcast.