Kotlin 1.7.20 est disponible
Un aperçu des nouveautés et améliorations du langage de programmation

JetBrains vient d'annoncer la sortie de Kotlin 1.7.20. Il s'agit d'une itération qui permet d'apporter des mises à jour dans les outils, des améliorations de performances et des corrections de bogues, après la dernière version majeure publiée début juin. Kotlin 1.7.0, rappelons-le, a marqué le passage du nouveau compilateur Kotlin/JVM K2 en phase Alpha. Elle a également permis de stabiliser les fonctionnalités du langage et améliorer les performances des plateformes JVM, JS et Native.

Pour ceux qui l'auraient manqué, voici concrètement les principales mises à jour et nouveautés apportées par Kotlin 1.7.0 :

  • Le nouveau compilateur Kotlin К2 est entré en phase Alpha avec des améliorations de performances significatives. Notons toutefois qu'il est disponible pour la JVM seulement, et aucun des plugins du compilateur, pas même kapt, ne l’utilise encore.
  • Une nouvelle approche de la compilation incrémentale dans Gradle : la compilation incrémentale est prise en charge également pour les modifications effectuées dans les modules non dépendants de Kotlin et elle est compatible avec Gradle.
  • JetBrains a stabilisé les annotations des exigences d’opt-in, les types définitivement non nullables et l’inférence de constructeur.
  • Vous trouverez maintenant un opérateur de soulignement pour les arguments de type. Vous pouvez l’utiliser pour déduire automatiquement un type d’argument lorsque d’autres types sont spécifiés.
  • Cette version a également permis l’implémentation par délégation à une valeur inline d’une classe inline. Vous pouvez maintenant créer des wrappers légers qui n’allouent pas de mémoire dans la plupart des cas.

Sur cette fondation, Kotlin 1.7.20 apporte un bon lot de nouveautés et améliorations. Mais parmi les plus importantes, nous pouvons soulignons celles qui suivent :

  • Le nouveau compilateur Kotlin K2 prend en charge all-open, no-arg, Lombok, et d'autres plugins de compilateur.

  • JetBrains a introduit la préversion de l'opérateur ..< qui se compte comme until et vous aide à créer des plages non majorées. L'exemple ci-dessous montre par exemple comment utiliser l'opérateur ..< dans une expression when.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
when (value) {
    in 0.0..<0.25 -> // first quarter
    in 0.25..<0.5 -> // second quarter
    in 0.5..<0.75 -> // third quarter
    in 0.75..1.0 ->  // last quarter  <- note closed range here
}

  • Le nouveau gestionnaire de mémoire Kotlin/Native est activé par défaut. Il a bénéficié de plus de stabilité et d'améliorations de performances dans cette version, et JetBrains a décidé de le faire passer en version bêta.

    L'ancien gestionnaire de mémoire compliquait l'écriture de code concurrent et asynchrone, y compris des problèmes d'implémentation de la bibliothèque kotlinx.coroutines. Cela a bloqué l'adoption de Kotlin Multiplatform Mobile car les limitations de concurrence ont créé des problèmes de partage de code Kotlin entre les plateformes iOS et Android. Le nouveau gestionnaire de mémoire ouvre donc aussi la voie à la promotion de Kotlin Multiplatform Mobile en version bêta.

  • JetBrains a introduit une nouvelle fonctionnalité expérimentale pour JVM : les classes inline avec un type sous-jacent générique.

  • L'éditeur de logiciels pour développeurs a également annoncé la prise en charge de Gradle 7.1. Kotlin 1.7.20 contient en effet des modifications pour prendre en charge Gradle 7.1. Par exemple, les méthodes et propriétés obsolètes ont été supprimées ou remplacées, ce qui a permis de réduire le nombre d'avertissements d'obsolescence produits par le plug-in Kotlin Gradle. Ces changements ouvrent en même temps la voie pour la prise en charge future de Gradle 8.0.

La vidéo ci-dessous donne un aperçu plus complet des nouveautés et améliorations introduites dans Kotlin 1.7.20.


Si vous utilisez IntelliJ IDEA (213, 221 ou 222), votre EDI vous donnera la possibilité de passer automatiquement à la nouvelle version de Kotlin dès qu'elle sera disponible. Si vous utilisez Android Studio Dolphin (213), Electric Eel (221) ou Flamingo (222), le plugin Kotlin 1.7.20 vous sera automatiquement livré avec les mises à jour d'Android Studio. Dans tous les cas, vous pouvez télécharger la dernière version de Kotlin manuellement.

Nouveautés et installation de Kotlin 1.7.20