La dernière version du langage développé par JetBrains, propose un mode d'interopérabilité pour les bibliothèques C ou Objective-C et des déclarations de déstructuration basées sur les noms pour les noms de propriétés. Les développeurs peuvent aussi exploiter les interfaces Kotlin sur JavaScript et TypeScript. Grâce à la technologie Native de la version 2.3.0, qui permet de compiler du code Kotlin en binaires natifs, les développeurs peuvent tester le mode d'interopérabilité, encore expérimental, pour les bibliothèques Objective-C et C. Cette fonction s'adresse aux développeurs qui utilisent des bibliothèques C ou Objective-C dans des bibliothèques ou des applications Kotlin Multiplatform (KMP). En général, Native permet d'importer des bibliothèques C et Objective-C dans Kotlin. Cependant, pour les bibliothèques KMP, cette fonctionnalité est actuellement affectée par des problèmes de compatibilité de KMP avec les anciennes versions du compilateur. Ainsi, si une bibliothèque KMP compilée avec une version du langage est publiée, l'importation de bibliothèques C ou Objective-C pourrait rendre impossible l'utilisation de cette bibliothèque Kotlin dans des projets utilisant une version antérieure de Kotlin. Pour résoudre ce problème et d'autres, l'équipe Kotlin a revu le mécanisme d'interopérabilité. À partir de l'itération 2.3.20, les développeurs peuvent essayer le dernier mode via une option du compilateur
Kotlin 2.3.20 introduit également des déclarations de déstructuration basées sur les noms qui associent les variables aux noms de propriétés au lieu de s'appuyer sur des fonctions componentN() basées sur la position. « Cette mise à jour lève la restriction concernant l'implémentation des interfaces Kotlin du côté JavaScript et TypeScript », a déclaré JetBrains. Jusqu'à présent, il était uniquement possible d'exporter des interfaces Kotlin vers TypeScript en tant qu'interfaces TypeScript, et non son implémentation. De plus, à partir de Kotlin 2.3.20, Kotlin/JS supporte la plateforme de compilation SWC basée sur Rust. Cela facilite la transcompilation des versions plus récentes de code JavaScript et TypeScript en code JavaScript plus ancien et plus compatible.
Zoom sur les autres améliorations
La version 2.3.20 fait suite à la 2.3.0 de décembre 2025 et à la version 2.3.10 de février. La mise à jour de ce langage concurrent de Java a été lancée le 16 mars. Des instructions pour débuter avec ce langage sont disponibles sur le site web de Kotlin. Parmi les autres modifications et/ou ajouts notables on retiendra également les suivants :
- Concernant l'interopérabilité avec Java, le compilateur reconnaît désormais l'annotation @Nullable de Vert.x pour les vérifications de variable de nullité. Cette version ajoute également la prise en charge des annotations Java @Unmodifiable et @UnmodifiableView afin de traiter les collections annotées comme étant en lecture seule dans Kotlin.
- La configuration du langage dans les projets utilisant l'outil de construction Maven est dorénavant plus simple. Kotlin supporte à présent la configuration automatique des répertoires sources et de la bibliothèque standard de Kotlin.
- Kotlin 2.3.20 est entièrement compatible avec les versions 7.6.3 à 9.3.0 de l'outil de build Gradle. Les développeurs peuvent aussi utiliser les versions de Gradle jusqu'à la dernière version disponible. Ils doivent toutefois savoir que cela peut entraîner des avertissements de dépréciation et que certaines nouvelles fonctionnalités de Gradle pourraient ne pas fonctionner.
- Le plug-in de compilation Lombok, destiné à la génération et à l'utilisation de déclarations Java Lombok, a été promu au statut alpha. Il est prévu de rendre cette fonctionnalité prête pour la production, mais elle est encore en cours de développement.
- La fonction d'extension Map.Entry.copy() est introduite pour créer une copie immuable d'un Map.Entry. Cette fonction permet de réutiliser les entrées obtenues à partir de Map.entries après avoir modifié la carte, en les copiant au préalable.