Kotlin 1.9.0, la dernière version du langage statiquement typé de JetBrains désormais essentiel dans le développement mobile Android, comprend une version bêta du compilateur K2 pour la JVM, qui améliore les performances. Dévoilée il y a un mois, la version 1.9.0 de Kotlin apporte par ailleurs un support de base dans K2 pour les projets Kotlin/Native et Kotlin/Multiplateform. K2 a été conçu pour améliorer les performances, unifier toutes les plateformes supportées par Kotlin, accélérer le développement de nouvelles fonctionnalités du langage et fournir une API pour les extensions du compilateur. K2 devrait devenir le compilateur stable par défaut dans Kotlin 2.0.
À partir de cette version 1.9.0 de Kotlin, les développeurs peuvent tester le compilateur K2 avec la propriété Gradle kotlin.experimental.tryK2=true. Dans Kotlin 1.9.0, les rapports du système build de Gradle indiquent à présent si le compilateur K2 ou le compilateur actuel a été utilisé pour compiler le code. Le cache de configuration Gradle, qui accélère le processus de construction, est pris en charge dans les bibliothèques multiplateformes.
De nombreuses fonctions stabilisées
Kotlin 1.9.0 stabilise également un certain nombre de fonctionnalités du langage, et plus particulièrement :
- Remplacement de la fonction values() de la classe enum. Kotlin 1.8.20 a introduit la propriété entries pour les classes enum en tant que fonctionnalité expérimentale ;
- Stabilisation des déclarations d'objets de données introduites dans Kotlin 1.8.20 ;
- Ajout de la prise en charge des constructeurs secondaires avec des corps dans les classes value en ligne.
Autres fonctionnalités et améliorations de Kotlin 1.9.0
- Un allocateur de mémoire personnalisé est présent en préversion dans Kotlin/Native afin d'améliorer les performances de son gestionnaire de mémoire ;
- Des optimisations de taille et de performance sont proposées pour la cible Kotlin/Wasm (WebAssembly). Kotlin/Wasm ne prend plus en charge les types dynamiques. Ceux-ci ont été abandonnés au profit d'un type universel JSAny pour une meilleure interopérabilité avec JavaScript ;
- L'API de la bibliothèque standard pour travailler avec des plages sans limite supérieure est maintenant stable ;
- Une fonction commune est proposée pour obtenir un groupe de capture d'expression régulière regex par son nom ;
- La disposition de la cible Android est la valeur par défaut. Cela remplace le schéma de nommage précédent pour les répertoires ;
- Une utilitaire de chemin pour créer des répertoires parent createParentDirectories() permet de créer un nouveau nom de fichier avec tous les répertoires parents nécessaires.
Kotlin 1.9.0 fait suite à Kotlin 1.8.0, qui introduisait la prise en charge de Java 19 et des fonctions expérimentales pour copier ou supprimer le contenu d'un répertoire sur la JVM. Les instructions pour démarrer avec Kotlin sont disponibles sur le site web du projet.