Kotlin, qu’est-ce que c’est et faut-il s’en servir ?

De Steven Marie dans Technique

6 sept 2018

Kotlin, au delà d’une île, c’est aussi un langage informatique. Vous ne le connaissez pas ? C’est normal, il s’agit d’un langage encore tout jeune !

Un peu d’Histoire

Le développement a été initié en 2011 par une équipe de JetBrains, que vous connaissez sûrement pour ses très bons IDE  (IntelliJ et PHPStorm pour ne citer que les plus renommés). Très vite, JetBrains publie le projet sous licence Apache 2 et après 5 ans de développement, la version 1.0 du langage sort en février 2016.

A partir de ce moment, les choses s’accélèrent puisque que Kotlin s’offre un partenaire de marque : Google. C’est à la Google I/O 2017 que Kotlin est annoncé comme le second langage de programmation officiel pour le développement Android. Une grande nouvelle qui n’est au final pas si étonnante quand on sait qu’Android Studio, l’IDE pour Android, s’appuie sur déjà sur l’un des produits de JetBrains : IntelliJ.

Pourquoi utiliser Kotlin ?

Pour donner les points forts du Kotlin, une image vaut mieux que milles mots :

Cependant, prenons quand même le temps d’approfondir un peu certains points susmentionnés et profitons en pour en ajouter quelques autres :

  • Kotlin est un langage clair et concis (au même titre que Python et/ou Swift, dans une moindre mesure). Cela permet permet, outre le gain en lignes de codes, de rendre le code plus lisible et facilement maintenable.
    Prenons pour exemple la citation suivante, issue d’un article rédigé par un développeur de KeepSafe : “Convertir l’application de Java à Kotlin nous a permis de réduire le nombre total de méthode de 10% et le nombre de lignes de code de 30%”

  • Kotlin est 100% compatible avec Java (de Java 6 à Java 9 depuis Kotlin 1.2), qu’il s’agisse du langage en lui-même, des outils et ou des frameworks associés.
    Attention toutefois, si les deux langages savent cohabiter dans un même projet , les deux langages restent distincts et l’apprentissage du Kotlin ainsi que le switch entre les deux langages nécessitera forcément un temps de montée en compétence non négligeable.

  • Kotlin, bien qu’assez récent, peut être considéré comme un langage mature, il dispose en effet d’un support complet des IDE majeurs (IntelliJ, Eclipse, NetBeans et Android Studio). De plus la sortie de la version 1.0 a aussi été l’occasion pour JetBrains d’annoncer une rétrocompatibilité à long terme à partir de cette version. La prise de risque à utiliser ce langage dans un projet avec un cycle de vie long est donc grandement minimisée.

  • C’est un point qui s’adresse plus spécialement au développement Android, mais je pense qu’il a toute son importance : toutes les fonctionnalités de base de Kotlin sont utilisables peu importe la version minimale du SDK que vise votre application.
    ex : Les Streams, introduites avec Java 8 et facilitant la manipulation des données (tableau, collection, flux réseau, etc), nécessitent normalement l’API 24 (Android 7.0) pour être utilisées. Avec Kotlin, on peut viser l’API 16 (Android 4.1) et en profiter quand même. (cf. cet article pour plus d’informations et une comparaison d’usage des streams entre les deux langages).

Tout ça m’a l’air génial, mais… ?

Kotlin, c’est beau et c’est stable, utilisons-le ! Oui… mais non ! Comme pour toute nouvelle technologie (langage, framework, outil, etc) dans le domaine du développement, il faut des développeurs fougueux pour essuyer les plâtres et si votre activité ne vous permet pas de faire parti de ces aventuriers. Dans ce cas mieux vaut attendre encore un peu avant de sauter le pas.

  • Kotlin c’est tout nouveau, tout beau on voudrait bien se lancer… Oui mais voilà, les ressources d’apprentissages sont encore trop peu nombreuses, les experts Kotlin ne courent pas les rues et même StackOverflow n’aura pas réponse à toutes les questions (environ 15 000 posts Kotlin contre 1 500 000 posts java au moment où j’écris ces lignes)

  • Le gain en productivité pour le développeur est réel et mesurable comme j’ai pu l’aborder plus tôt. Malheureusement, ce qui concerne le code ne concerne pas forcément la compilation ni même l’exécution et sur ce point, pour le moment tout du moins, Kotlin n’est pas toujours à son avantage : parfois beaucoup plus rapide que Java, parfois beaucoup plus lent. Des progrès restent à faire.

Qu’en penser au final ?

La réponse dépend de vous. Comme j’ai tenté de le montrer au fil de cette présentation succincte, Kotlin est un langage prometteur et plein de bonnes idées, mais il n’échappe pas aux défauts de jeunesse de tous les nouveaux langages avec quelques déboires de performances et un manque de ressources d’apprentissage.

Cependant, la popularité grandissante du langage, le fait qu’il soit open-source et le soutien de partenaires tels que Google vont sans doute faire qu’à l’instar du Swift, ces défauts seront rapidement corrigés.

Je vous invite d’ailleurs à garder un oeil attentif sur l’évolution de Kotlin car comme en témoigne la F.A.Q disponible sur le site officiel, Kotlin Native est dans les tuyaux avec pour but d’ouvrir aux développeurs utilisant le langage de nouveaux horizons : plus besoin d’une JVM, plus de dépendance à Java, la possibilité de développer pour le Web (Frontend et Backend) mais aussi pour iOS et MacOS !

De belles promesses que l’on a hâte de voir devenir réalité.

Aller plus loin

Le site officiel : https://kotlinlang.org

Une série de trois articles pour en savoir plus sur les particularités du langage et sa syntaxe :

Introduction à Kotlin pour Android : http://blog.ippon.fr/2017/12/11/introduction-a-kotlin-pour-android/

Formation complète à Kotlin pour Android (payant):

https://www.udemy.com/android-kotlin-apps-mobiles/

Commentaire

six × = 18

iMDEO recrute !

REJOIGNEZ-NOUS

A la recherche de nouveaux talents (développeurs web et mobile, chefs de projet,...)

Voir les annonces