Kotlin 1.2 est donc la deuxième version majeure pour cette année, et est présenté par l'équipe JetBrains comme une grande avancée vers son objectif de permettre l’utilisation de Kotlin dans tous les composants d’une application moderne. « Avec Kotlin 1.1, nous avons fourni le support officiel de JavaScript comme cible de déploiement, permettant ainsi de compiler Kotlin en JS pour une exécution dans le navigateur », expliquent les développeurs du langage. « Avec Kotlin 1.2, nous ajoutons la possibilité de partager le code entre la JVM et JavaScript. Vous pouvez désormais écrire une seule fois la logique métier de votre application et la réutiliser dans toutes les couches de votre application — le backend, un navigateur frontend et une application mobile Android. » L'équipe JetBrains dit également travailler sur des bibliothèques favorisant la réutilisation du code, comme une bibliothèque cross-platform de sérialisation.
La principale nouveauté dans Kotlin concerne donc les projets multiplateformes, mais il y a aussi des gains de performance pour la compilation, ainsi que d’autres améliorations du langage et de la bibliothèque standard.
Projets multiplateformes
Un projet multiplateforme vous permet de construire plusieurs couches de votre application — backend, frontend et App Android — depuis la même base de code. Ce type de projet contient à la fois des modules communs, qui contiennent du code indépendant de la plateforme, et des modules plateforme, qui contiennent le code spécifique à une plateforme (JVM ou JS) et qui peuvent utiliser des bibliothèques de cette plateforme. Kotlin 1.2 vous permet donc d'appeler du code plateforme depuis un module commun.
Comme cela a été également mentionné précédemment, JetBrains travaille sur une série de bibliothèques communes pour vous permettre de déplacer plus de code vers des modules communs. Il s’agit notamment de :
- kotlin.test, qui est inclus par défaut dans Kotlin 1.2 et vous permet d’écrire vos tests une seule fois et de les exécuter à la fois dans la JVM et en JS ;
- kotlinx.html, qui supporte un rendu isomorphique — le même code produit du HTML en backend et en frontend ;
- kotlinx.serialization, qui permet de sérialiser facilement vos objets Kotlin entre les différentes couches de votre application, en utilisant JSON ou ProtoBuf comme format de sérialisation.
Il est important de préciser que les projets multiplateformes sont actuellement disponibles en tant que fonctionnalité expérimentale. Cela veut dire que la fonctionnalité peut être utilisée, mais il est possible que sa conception soit modifiée dans la prochaine version de Kotlin. Dans ce cas, JetBrains assure qu’il fournira aux développeurs des outils de migration.
Performances de compilation
Kotlin 1.2 vient avec des optimisations pour les performances du compilateur. JetBrains dit avoir amélioré les temps de compilation de 25 % par rapport à Kotlin 1.1, et prévoit d’autres améliorations significatives qui seront introduites dans les mises à jour Kotlin 1.2.x.
Autres améliorations du langage et de la bibliothèque standard
JetBrains a également réalisé des améliorations ciblées du langage et de la bibliothèque standard. Il s'agit entre autres de :
- une syntaxe plus concise pour transmettre plusieurs paramètres à une annotation (array literals) ;
- le support de lateinit sur les propriétés top-level et les variables locales, ainsi que la vérification de l’initialisation effective d’une variable lateinit ;
- des smart casts plus évolués et une amélioration de l’inférence de type dans certains cas ;
- la compatibilité de la bibliothèque standard avec les restrictions de séparation de package introduites par Java 9 ;
- un nouveau package kotlin.math dans la bibliothèque standard ;
- de nouvelles fonctions dans la bibliothèque standard pour travailler avec les séquences et les collections, comprenant notamment une série de fonctions pour séparer une collection ou une séquence en plusieurs groupes de taille définie.
Kotlin : une adoption croissante dans la communauté des développeurs et éditeurs
Comme nous l’avons déjà mentionné, Kotlin est maintenant un langage officiel pour le développement Android, avec un support inclus dans Android Studio 3.0. Comme conséquence, JetBrains note que Kotlin est déjà utilisé dans plus de 17 % des projets sous Android Studio 3.0, y compris dans des applications des startups les plus actives et des entreprises du Fortune 500.
Du côté serveur, il faut également noter que Spring Framework 5.0 a été publié avec de nombreuses fonctionnalités de support de Kotlin, et le framework événementiel pour la JVM Vert.x supporte Kotlin depuis la publication de la version 3.4.0. Par ailleurs, Gradle est désormais fourni avec le support d’un DSL Kotlin, et le projet Gradle Kotlin DSL s’approche rapidement de la publication de sa version 1.0.
JetBrains explique que depuis la sortie de Kotlin 1.1 en mars de cette année, l’adoption du langage a connu une croissance très importante dans le monde. L'intérêt croissant pour Kotlin s'est confirmé récemment à la première conférence internationale KotlinConf qui a réuni environ 1200 participants à San Francisco les 2 et 3 novembre.
Kotlin 1.2 étant disponible, vous pouvez l'essayer en ligne à l'adresse try.kotlinlang.org ou directement dans vos IDE :
- sous Maven, Gradle et npm : utilisez 1.2.0 comme numéro de version pour le compilateur et la bibliothèque standard ;
- sous IntelliJ IDEA : utilisez la version 2017.3 qui contient Kotlin 1.2. Pour les versions précédentes, installez ou mettez à jour le plugin Kotlin plugin à la version 1.2 ;
- sous Android Studio : installez ou mettez à jour le plugin depuis Plugin Manager ;
- sous Eclipse : installez le plugin en utilisant Marketplace.
Il faut noter que le compilateur en ligne de commande peut être téléchargé depuis la page GitHub sur les notes de version. En ce qui concerne la compatibilité, avec Kotlin 1.2, le langage et la bibliothèque standard assurent la compatibilité ascendante. Cela veut dire que ce qui compilait et s’exécutait dans les versions 1.0 et 1.1 devrait continuer à fonctionner avec la version 1.2. Pour aider les équipes de grande taille à effectuer la mise à jour de leur code progressivement, l'équipe JetBrains fournit aussi des options de compilateur qui désactivent les nouvelles fonctionnalités.
Sources : Blog JetBrains, Nouveautés dans Kotlin 1.2
Et vous ?
Utilisez-vous Kotlin ? Si oui, avec quel IDE ?
Que pensez-vous des nouveautés de Kotlin 1.2 ?
Qu’attendez-vous encore du langage ?
Voir aussi :
Android Studio 3.0 est disponible avec le support de Kotlin, plus de fonctionnalités Java 8 et bien plus
Développement Android : Kotlin gagnerait du terrain au détriment de Java, et Realm prédit qu'il sera le plus utilisé fin 2018
Classement Tiobe : Kotlin, le langage pour JVM entre dans le top 50, et pourrait connaître la même ascension rapide que Swift, selon certains