Principaux changements de Kotlin 2.0.0
(kotlinlang.org)- Le compilateur Kotlin K2 est désormais disponible en version stable. Il offre des gains de performances par rapport au compilateur précédent, accélère le développement de nouvelles fonctionnalités du langage et améliore l’architecture pour les projets multiplateformes
- Le smart cast a été amélioré pour les variables locales et les portées plus larges, les vérifications de type avec l’opérateur logique
or, les fonctionsinline, les propriétés de type fonction, la gestion des exceptions, les opérateurs d’incrémentation et de décrémentation, etc. - Dans les projets multiplateformes, la compilation des sources communes et des sources spécifiques aux plateformes est désormais strictement séparée. Les déclarations
expect/actualpeuvent désormais avoir des niveaux de visibilité différents - Kotlin/Wasm améliore notamment la prise en charge native de l’optimisation via Binaryen, les exports nommés, la prise en charge des types primitifs non signés dans les fonctions
@JsExportet la capture des exceptions JS - Kotlin/JS ajoute la cible de compilation
es2015, la compilation des fonctionssuspenden générateurs ES, le passage d’arguments à la fonctionmain, la compilation par fichier, une meilleure interopérabilité des collections et le pluginjs-plain-objects - Kotlin Multiplatform améliore notamment la configuration des options du compilateur via la DSL Gradle, l’intégration du plugin du compilateur Compose, les changements du dossier de données Kotlin et le téléchargement du compilateur Kotlin/Native uniquement lorsqu’il est nécessaire
- Dans la bibliothèque standard, le remplacement de la fonction générique
valuesdes classesenum, l’interfaceAutoCloseableet les fonctions d’extension communes passent au statut stable
1 commentaires
Un benchmark simple (et extrême) des performances du compilateur.
https://github.com/ganadist/kotlin_build_performance
200 classes par projet, avec 2000 champs dans chaque classe
java : 2 secondes
kotlin 1.9.24 : 1 minute 20 secondes
kotlin 2.0.0 : 1 minute 1 seconde
Vérifié sur un Macbook Pro M1 Max.
Le projet ci-dessus est un cas un peu extrême, mais en général, la vitesse de compilation de kotlin 2.0 semble être environ deux fois plus rapide que celle de kotlin 1.9.