Kotlin
A concise multiplatform language developed by JetBrains
Kotlin 1.5.0 : la première version majeure du langage de 2021
Comme prévu dans notre calendrier de sortie des nouvelles versions, Kotlin 1.5.0 apporte de nouvelles fonctionnalités de langage.
Cette version offre des fonctionnalités de langage stables, parmi lesquelles les enregistrements de la JVM, les interfaces scellées, les classes inline, et inclut le nouveau compilateur IR de la JVM par défaut. Vos commentaires sur les fonctionnalités présentées en preview dans les versions Kotlin 1.4.30 et Kotlin 1.5.0 EAP nous ont vraiment aidé·es à les stabiliser. Nous vous sommes très reconnaissant·es de votre aide ! Merci !
Plus de 25 000 développeurs ont déjà essayé le nouveau compilateur JVM IR dans IntelliJ IDEA.
Vous en constaterez les avantages au fil du temps. Le nouveau compilateur partage une logique métier et un pipeline unifiés avec les compilateurs IR Kotlin/Native et Kotlin/JS, ce qui nous permet d’implémenter la plupart des fonctionnalités, optimisations et corrections de bugs pour toutes les plateformes simultanément. Cela vous permet également d’ajouter des processus personnalisés et des transformations qui fonctionneront automatiquement sur toutes les plateformes.
Vous avez des questions sur Kotlin 1.5.0 ? Roman Elizarov, Svetlana Isakova et d’autres membres de l’équipe Kotlin pourront y répondre en direct le 25 mai lors de l’événement en ligne Kotlin 1.5.
Dans cet article, vous trouverez une présentation des points suivants :
- Les fonctionnalités stables du langage : enregistrements de la JVM, interfaces scellées et classes inline.
- Les améliorations de la bibliothèque standard et de la bibliothèque de tests, avec notamment les types d’entiers non signés stables, les extensions pour
java.nio.file.Path
et les améliorations des API String, Char et Duration. - Les améliorations de Kotlin/JVM, notamment le nouveau compilateur IR par défaut de la JVM.
- Les améliorations de Kotlin/Native, comme l’accélération de la compilation du débogage pour les applications Linux et iOS.
- Les améliorations de Kotlin/JS, notamment la migration d’autres bibliothèques JS vers le nouveau compilateur IR Kotlin/JS.
Mise à jour automatique vers Kotlin 1.5.0
Si vous utilisez IntelliJ IDEA ou Android Studio, vous aurez la possibilité de mettre Kotlin à jour vers sa nouvelle version automatiquement dès qu’elle sera disponible.
En savoir plus sur l’installation de Kotlin 1.5.0.
Fonctionnalités de langage stables
Kotlin 1.5.0 fournit des versions stables des nouvelles fonctionnalités de langage présentées en avant-première dans la version 1.4.30 :
- Prise en charge des enregistrements de la JVM pour maintenir l’interopérabilité avec les dernières fonctionnalités de Java : les classes d’enregistrement. Pour utiliser une classe Kotlin en tant qu’enregistrement dans le code Java, faites-en une classe
data
et signalez-la par l’annotation@JvmRecord
:En savoir plus sur les conditions requises pour utiliser les enregistrements JVM.
- Interfaces scellées. Le modificateur
sealed
fonctionne de la même manière sur les interfaces et sur les classes : toutes les implémentations d’une interface scellée sont connues au moment de la compilation. - Améliorations des classes scellées. Auparavant, toutes les sous-classes devaient se trouver dans le même fichier que les classes scellées. Désormais elle peuvent se trouver dans tous les fichiers de la même unité de compilation et du même paquet.
- Les classes inline sont un sous-ensemble de classes basées sur des valeurs qui ne contiennent que des valeurs. Vous pouvez les utiliser comme des wrappers pour une valeur d’un certain type sans la surcharge supplémentaire due aux allocations de mémoire. Utilisez le modificateur
value
pour la déclaration.
En savoir plus sur les fonctionnalités de langage de Kotlin 1.5.0
- Lisez l’article de blog sur la preview des fonctionnalités du langage.
- Consultez la documentation du langage.
- Regardez la série de vidéos sur le langage.
Améliorations des bibliothèques standard et de tests
La bibliothèque standard offre de nombreuses fonctionnalités utiles, notamment :
- Les nouvelles API stables pour les types d’entiers non signés, ainsi que pour les plages, les progressions et les fonctions associées. En savoir plus sur les entiers non signés.
- Fonctions d’extension pour java.nio.file.Path afin d’utiliser les dernières entrées-sorties Java non-bloquantes dans le style idiomatique de Kotlin.
- Améliorations des API String et Char, avec notamment la nouvelle API indépendante des paramètres régionaux pour modifier la casse des chaînes et des caractères, un ensemble de nouvelles fonctions pour la conversion entre les caractères et leurs codes entiers et valeurs numériques, et la prise en charge multiplateforme d’un plus grand nombre de fonctions Char.
- Modifications de l’API Duration, notamment l’utilisation d’une valeur
Long
pour la représentation interne et l’arrivée de nouvelles propriétés pour la récupération d’une durée en tant que valeurLong
.
La bibliothèque de test a fait l’objet de plusieurs améliorations importantes :
- Dépendance
kotlin-test
unique dans l’ensemble de sources commun des projets multiplateformes. - Choix automatique d’un framework de test pour les ensembles de sources Kotlin/JVM lorsque vous spécifiez la seule dépendance
kotlin-test
. - Plusieurs mises à jour des fonctions d’assertion.
En savoir plus sur les améliorations de la bibliothèque
- Lisez l’article de blog sur l’amélioration de la bibliothèque avec des exemples.
- Consultez les Nouveautés de Kotlin 1.5.0.
- Regardez la vidéo.
Kotlin/JVM
Kotlin 1.5.0 apporte les nouveautés suivantes :
- Le nouveau compilateur JVM IR, annoncé dans Kotlin 1.4.0, est maintenant Stable et utilisé par défaut. Pour en savoir plus sur le nouveau compilateur, consultez cet article de blog et cette documentation.
- Compilation des adaptateurs SAM et des lambdas en appels dynamiques (invokedynamic), bénéficiant des dernières fonctionnalités de la JVM. La compilation des lambdas simples Kotlin est expérimentale.
- Nouvelle cible JVM par défaut : 1.8. La cible
1.6
est obsolète. - Amélioration de la gestion des informations sur la nullité des types de Java.
- Modes @JvmDefault et old Xjvm-default obsolètes.
Kotlin/Native
Kotlin 1.5.0 offre :
- La prise en charge des caches du compilateur en mode débogage pour les cibles
linuxX64
etiosArm64
. Grâce à l’activation des caches du compilateur, la plupart des compilations de débogage prennent beaucoup moins de temps, à part la première. Les mesures que nous avons effectuées ont montré une accélération d’environ 200% sur nos projets de tests. - Désactivation de la vérification intégrée des fuites de mémoire afin d’éviter des problèmes susceptibles d’entraîner des blocages des applications. Apprenez comment activer la vérification de fuites de mémoire si vous en avez besoin.
Kotlin/JS
Pour Kotlin/JS, le passage du nouveau compilateur IR Koltin/JS en phase Bêta est en cours. De nombreux frameworks et bibliothèques bien connu·es sont déjà disponibles pour le compilateur IR : KVision, fritz2, doodle, etc.
Si vous créez des bibliothèques, vous pouvez y ajouter la vôtre en effectuant une migration grâce à la compatibilité descendante.
Autre amélioration : la création de bundles JS en utilisant webpack 5 au lieu de webpack 4.
Comment installer Kotlin 1.5.0
Si vous utilisez IntelliJ IDEA ou Android Studio, il vous sera suggéré de faire la mise à jour vers Kotlin 1.5.0 automatiquement. Vous pouvez également faire la mise à jour manuellement en suivant ces instructions. Veuillez noter que Kotlin 1.5.0 est pris en charge par Android Studio 4.2.0, Arctic Fox Canary 15 et les versions ultérieures seulement.
Vous pouvez toujours télécharger les dernières versions des IDE suivants pour bénéficier d’une prise en charge étendue pour Kotlin :
- IntelliJ IDEA pour développer des applications Kotlin pour différentes plateformes.
- Android Studio pour le développement d’applications mobiles Android et multiplateformes.
Assurez-vous aussi de mettre à jour les bibliothèques kotlinx vers des versions compatibles et de spécifier la version 1.5.0
de Kotlin dans les scripts de build de vos projets existants.
Si vous avez besoin du compilateur en ligne de commande, téléchargez-le depuis la page Github de la version.
En cas de problème
- Trouvez de l’aide sur Slack (recevoir une invitation).
- Signalez les problèmes dans notre outil de suivi YouTrack.
Événement en ligne Kotlin 1.5
Participez à l’événement en ligne Kotlin 1.5 le 25 mai. L’équipe Kotlin y répondra à toutes vos questions sur la dernière version. Vous pourrez poser des questions sur tout ce que vous voulez savoir, ou si vous n’avez pas de questions et que vous préférez simplement écouter les réponses, cela nous convient aussi très bien. L’événement durera 1h30.
Nous organiserons également une session Ask Me Anything (AMA) sur Reddit les 27 et 28 mai pour répondre à toutes les questions restées sans réponse ainsi qu’à de nouvelles questions.
Compatibilité
Comme pour toutes les versions majeures, certains cycles d’obsolescence de modifications précédemment annoncées arrivent à leur terme avec Kotlin 1.5.0. Tous ces cas ont été soigneusement examinés par le comité du langage et sont listés dans le Guide de compatibilité pour Kotlin 1.5. Vous pouvez également en savoir plus sur ces changements sur YouTrack.
Plus de vidéos et d’articles
Suivez notre chaîne YouTube Kotlin :
- Playlist de vidéos sur Kotlin 1.5.0
- Abonnez-vous à la chaîne YouTube Kotlin pour ne pas manquer les vidéos sur les nouvelles améliorations des coroutines et des bibliothèques de sérialisation.
Consultez le blog Kotlin :
- Aperçu des fonctionnalités de langage de Kotlin 1.5.0
- Améliorations des bibliothèques standard et de tests de Kotlin 1.5.0
- Nouveau backend IR de la JVM
- Amélioration de la prise en charge de Kotlin dans IntelliJ IDEA
Pour en savoir plus, consultez la documentation Kotlin :
Contributeurs externes
👏👏👏 Nous tenons à remercier nos contributeurs et contributrices externes dont les requêtes pull ont été incluses dans cette version :
Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.
Principaux créateurs et créatrices de tickets dans YouTrack
Un grand merci également à tous les membres de la communauté qui nous ont aidés à réaliser les améliorations pour cette version en créant des tickets dans YouTrack ! 👏👏👏 Nous avons établi une liste des 20 meilleurs rapporteurs, que nous souhaitons remercier plus particulièrement :
Morgan Bartholomew (118 tickets) ; Marc Knaup (78 tickets) ; Ryan Nett (61 tickets) ; Louis CAD (48 tickets) ; Daniil Stepanov (44 tickets) ; AndroidDeveloperLB (39 tickets) ; Victor Turansky (38 tickets) ; Jinseong Jeon (35 tickets) ; Zac Sweers (25 tickets) ; Łukasz Wasylkowski (22 tickets) ; Tianyi Guan (21 tickets) ; Christoph Sturm (20 tickets) ; Axel Fontaine (19 tickets) ; Alexander Nozik (18 tickets) ; Robert Stoll (18 tickets) ; Björn Kautler (18 tickets) ; Róbert Papp (14 tickets) ; Andreas Malik (14 tickets) ; Lorenzo Neumann (14 tickets) ; Iaroslav Postovalov (14 tickets).
Installez Kotlin 1.5.0 et inscrivez-vous à l’événement en ligne Kotlin 1.5 !
Auteur de l’article original en anglais : Ekaterina Volodko