Kotlin : un meilleur langage que Java ?

7 min
1 023
0
0
Publié le

Kotlin est un langage de programmation orienté objet, mais aussi fonctionnel à typage statique. Développé par JetBrains, la société éditrice, entre autres, des célèbres environnements de développement intégrés IntelliJ IDEA et PhpStorm, il a été lancé en 2011. À l’origine, Kotlin était un des nombreux langages conçus pour compiler sur les machines virtuelles Java. Mais ses usages sont beaucoup plus larges. Kotlin peut être utilisé aussi bien pour le développement back-end que le front-end, pour les systèmes embarqués et les applications mobiles ou encore pour les Data Science. Open source et facile à utiliser, il est plébiscité par les développeurs IT et les grands sites tels que Pinterest. Google a également déclaré, dès 2017, que Kotlin était le second langage de programmation officiellement pris en charge par Android. Alors Kotlin est-il en train de devenir un meilleur langage que Java

Les atouts du langage de programmation Kotlin

 

IntelliJ souhaite que Kotlin soit facile à apprendre. Selon ses créateurs, quelques jours suffisent pour le prendre en main. Maîtriser sa syntaxe et ses fonctionnalités avancées demandent ensuite quelques semaines.

Kotlin s’inspire des langages existants tels que Java, C #, JavaScript, Scala et Groovy. 

Bien qu’il ne surpasse pas (encore ?) Java en popularité, il a dépassé celle de Ruby. Selon l’enquête annuelle de StackOverflow, il se rapproche du top 10 des langages de programmation les plus utilisés par les développeurs IT. Cette popularité est en grande partie due à ses caractéristiques particulières.

Kotlin est un langage de type statique facile à lire et à écrire. Sa syntaxe est plus courte que le code de Java notamment. Cette simplicité provient de fonctionnalités telles que : 

  • les classes de données qui ont pour objectif de représenter les objets métiers, c’est-à-dire des abstractions de la réalité qui décrivent les structures de données modifiées par les programmes et les processus métier d’une entreprise ;

  • les extensions : comme leur nom l’indique, elles permettent d’ajouter des fonctions ou des propriétés à une classe. En Kotlin ces rajouts sont considérés comme appartenant à la classe elle-même ;

  • l’interopérabilité avec java : les développeurs Kotlin peuvent utiliser tous les frameworks et bibliothèques Java dans leurs programmes ;

  • un compilateur « intelligent » et fiable : grâce au « fail-fast » : les erreurs sont remontées dès la compilation et non au moment de l’exécution ;

  • les propriétés : en Kotlin, les propriétés peuvent être déclarées très facilement comme modifiables à l’aide du mot-clé « var » ou en lecture seule avec « val » (là où Java demanderait l’ajout du mot-clé « final », peu employé et très souvent oublié) ;

  • les « smart cast » ou conversions intelligentes qui désignent la capacité du compilateur de Kotlin a déduire automatiquement le type d’une variable.

 

Grâce à cette dernière fonctionnalité, il est possible de ne pas spécifier le type d’une propriété si celui-ci peut être obtenu à partir du getter.

D’après la documentation officielle en ligne, il suffit d’écrire :  

val isEmpty get() = this.size == 0  

pour que le compilateur comprenne que « isEmpty » est de type booléen.

Le deuxième langage de programmation officiel pour Android

L’approche Kotlin-first ? 

Android prend en charge Kotlin en tant que deuxième langage officiel, après Java. Google a même annoncé que le futur du développement Android passerait par une approche Kotlin-first. Cela signifie que, lors du lancement de nouveaux outils ou contenus pour Android, la conception sera dorénavant axée sur Kotlin. Les documentations et exemples seront aussi axés sur le langage de JetBrains. Néanmoins, Google maintiendra une assistance pour la manipulation de ses API depuis Java, ce dernier restant le langage attitré pour la création d’application mobile Android.

 

Kotlin meilleure que Java pour Android ?

Cette stratégie du Kotlin-first est en grande partie due aux demandes des développeurs Android qui privilégient de plus en plus Kotlin. La syntaxe améliorée du langage de programmation ainsi que ses expressions concises permettent notamment de réduire le volume de code. Le développement, mais aussi les mises à jour sont ainsi simplifiés. Des estimations approximatives annoncent une diminution d’environ 40 % du nombre de lignes de code.

L’autre avantage majeur de Kotlin est sa gestion du « null ». La tristement célèbre erreur de NullPointerException est responsable d’une large partie des bugs de développement Android. Kotlin résout ce problème en incorporant une « sécurité null » inhérente, sans besoin d’écrire du code supplémentaire.

Il faut simplement notifier au compilateur que la valeur de la variable peut être nulle grâce au symbole : ?

Par exemple :

  var prenom : String ? = « Francis » //peut être null 
   prenom= null ; //pas d’erreur

Il est ensuite possible de faire appel à l’opérateur « Safe calls » avec le signe : ?.

Ce dernier permet d’appeler une méthode sur une variable uniquement si celle-ci ne fait pas référence à null (et sans avoir besoin de faire de vérification préalable avec des if et else par exemple)

Exemple :

 val a : String ? = null 
 println(a?.length) //pas d’erreur, retourne null si a est null

De plus, l’API Collection de Kotlin permet de déclarer des collections qui contiennent des éléments null. 

Par exemple : 

val listeDeNumero : List<Int ?> = listOf (0,1,null,2)

Kotlin est aussi réputé comme plus fiable grâce à son interdiction des types bruts ou primitifs. Ces éléments présents en Java peuvent lever une exception CastClassException lors de l’exécution du code. Kotlin lui est un langage exclusivement objet. Les fonctions membres et les propriétés peuvent être appelées sur n’importe quelle variable, même les types de données de base comme Int ou Boolean. 

 

Kotlin MultiPlatform Mobile

En plus d’Android, Kotlin permet, depuis sa version 1.2, de partager le code entre la JVM et le JavaScript. Cela offre, par exemple, la possibilité de partager la logique métier d’un programme entre le backend, le frontend et même une application Android.

Kotlin MultiPlatform Mobile va encore plus loin en autorisant la création et le partage de la logique métier entre Android et IOS. La base de code est unique et l’accès aux API spécifiques de chaque plateforme se fait via le système Kotlin des déclarations « attendues et réelles ». Ce mécanisme permet, à l’aide d’un modèle commun, de définir une déclaration attendue. Les modules de chaque plateforme devront faire des déclarations réelles qui correspondent à celle attendue. Cela marche pour les propriétés, les annotations, les interfaces, les énumérations, mais aussi les classes et les fonctions.

 La documentation officielle donne l’exemple de la génération de UUID (identifiant unique)

Dans le module commun (la logique métier), la déclaration attendue se fait au moyen du mot-clé « expect » :

 //Common 
expect fun randomUUID() : String

Ensuite, les modules spécifiques à une plateforme fournissent la déclaration correspondante « attendue » grâce au mot-clé « actual » :

 //Android 
import java.util.* 
actual fun randomUUID() = UUID.randomUUID().toString()
//iOS
import platform.Foundation.NSUUID
actual fun randomUUID(): String = NSUUID(). UUIDString()

Bien qu’il ne soit pas le premier outil disponible pour créer des applications multiplateformes, Kotlin gagne de plus en plus en popularité. Il est jugé plus natif que ses concurrents Flutter, Xamarin ou encore React Native. En effet, il utilise une logique partagée et des librairies avec lesquelles les développeurs peuvent interagir dans les environnements de développement natifs. Kotlin produit ensuite du code natif à chaque plateforme.

L’ajout de Kotlin/Native autorise, de plus, la compilation du code Kotlin en binaires natifs, capable de s’exécuter sans machine virtuelle. Il s’agit d’un backend basé sur LLVM (Low Level Virtual Machine), une infrastructure de compilateur conçue pour l’optimisation du code et l’implémentation native de la bibliothèque standard Kotlin. Cela permet au langage de prendre en charge plus de plateformes telles que macOS iOS, tvOS, watchOS ou même Linux.

Que ce soit au niveau du développement front-end, back end ou mobile, Kotlin comble de nombreuses lacunes de Java. Cependant, à cause de sa jeunesse, il ne possède pas (encore) une communauté aussi forte. Et n’oublions pas que, derrière Kotlin, c’est presque toujours la machine virtuelle Java qui exécute le code ! 

La tendance est donc plus à une cohabitation entre les deux langages accentuée par leur grande interopérabilité.

Et vous que pensez vous de Kotlin, privilégiez vous ce langage par rapport à Java.

 

Sources et liens utiles :

Boostez vos projets IT

Les meilleures missions et offres d’emploi sont chez Free-Work

Continuez votre lecture autour des sujets :

Commentaire

Dans la même catégorie

Au service des talents IT

Free-Work est une plateforme qui s'adresse à tous les professionnels des métiers de l'informatique.

Ses contenus et son jobboard IT sont mis à disposition 100% gratuitement pour les indépendants et les salariés du secteur.

Free-workers
Ressources
A propos
Espace recruteurs
2024 © Free-Work / AGSI SAS
Suivez-nous