La 1ère version de Kotlin est sortie le 22 juillet 2019. Qu’en est-il de l’évolution de ce langage de programmation 4 ans après ? Pour l’occasion, nous avons interviewé un développeur spécialisé en Kotlin !
Petit instant de culture générale : l’idée folle de JetBrains
L’idée de Kotlin a germé dans l’esprit des ingénieurs de l’entreprise JetBrains en 2010. L’objectif de ces ingénieurs était de trouver un langage alternatif à Java, dont les limitations de conception affectaient le développement de leurs produits. La seule obligation de ce langage était qu’il puisse être 100% compatible avec Java, afin d’éviter de recommencer tous les projets. Après de nombreuses tentatives avec des langages compatibles avec la JVM, les ingénieurs ont fini par se lancer dans la création de leur propre langage.
C’est ainsi qui naquit Kotlin. Petite anecdote : ce langage s’appelle ainsi en référence à son île natale Kotlin en Russie. Sa philosophie ? Être concis, pragmatique et surtout 100% interopérable avec Java ! Il est utilisé pour développer des applications natives pour la plateforme Android, des serveurs web et des applications de bureau.
Kotlin VS Java : quel est le meilleur langage ?
Comme vous pouvez le voir ci-dessus à travers ce tableau (non exhaustif), ces deux langages de programmation populaires présentent chacun des avantages et des inconvénients. À première vue, il est donc difficile de trancher cette question. Le développeur que nous avons interviewé explique tout d’abord qu’il a commencé à coder en Java avant de se mettre à Kotlin. Verdict ?
« Mon retour d’expérience pourrait se réduire en une phrase : se mettre à Kotlin, c’est bien plus facile que de retourner au Java. La manipulation des listes, les data class, les points virgules ! La liste des fonctionnalités nous permettant de réduire la verbosité de notre code (intelligemment) est longue. Kotlin est plus performant si on se penche sur les coroutines (qui remplacent les threads classiques tout en consommant moins de CPU). Finalement, Kotlin nous permet de concevoir des .jar ou des .apk (à l’instar du Java) mais avec une écriture du code bien plus agréable et c’est principalement là qu’est sa plus-value (à mon avis). »
5 avantages du langage Kotlin
1.Interopérabilité avec Java
Kotlin est totalement compatible avec le code Java existant. On peut utiliser les bibliothèques Java et appeler du code Java à partir de Kotlin. Ça facilite la transition progressive d’un projet Java existant vers Kotlin.
2. Sécurité du type
Ce langage de programmation offre un système de typage statique plus fort que Java. Cela nous permet de détecter les erreurs de type à la compilation plutôt qu’à l’exécution. Cela nous permet donc de réduire les erreurs et les exceptions potentielles dans le code.
3. Concision syntaxique
Kotlin nous permet de coder avec une syntaxe plus concise par rapport à Java (via des sucres syntaxiques entre autre). Il nous permet d’écrire moins de code pour accomplir les mêmes tâches qu’en Java, ce qui peut améliorer la lisibilité et la maintenabilité du code.
4. Nullabilité sûre
Kotlin intègre la notion de nullabilité sûre dans son système de types. Nous n’avons pas de NullPointerExceptions en faisant la distinction entre les types pouvant être nuls et les types non nuls. Cela nous permet de détecter les erreurs potentielles lors de la compilation.
5. Programmation fonctionnelle
Kotlin est un langage objet mais aussi fonctionnel. Il est donc possible d’écrire un code plus concis, expressif et déclaratif. Il y a des fonctionnalités telles que les lambdas et les opérations sur les collections, ce qui facilite la manipulation des données
Faut-il se lancer dans le développement Android avec Java ou Kotlin ?
« À vrai dire, peu importe ! Le Java a encore beaucoup de références sur le web et on voit qu’il est encore en haut du tableau des langages de programmation les plus populaires . Kotlin a beaucoup d’avantages et nous permet de faire autant que Java avec un code plus simple dans l’écriture.
Peu importe ce qu’on choisit, si on apprend bien le Java on pourra passer au Kotlin sans problème. L’inverse est probablement aussi vrai ! L’important c’est pas vraiment le langage mais la structure du code ! »