Kotlin 1.4.20

Par:
fredericmazue

mar, 24/11/2020 - 11:05

JetBrains vient de publier Kotlin 1.4.20. Cette nouvelle mouture du langage maison de JetBrains est très riche, elle comporte de nombreuses fonctionnalités expérimentales et elle est très axée sur la performance.

Kotlin 1.4.20 améliore l'efficacité des concaténations de chaînes. Depuis Java 9, la concaténation de chaînes sur la JVM est plus efficace, notamment grâce à l'appel d'une méthode dynamique qui se fait via l'instruction de bytecode invokedynamic. JetBrains a implémenté le même mécanisme dans Kotlin qui est à présent capable de compiler des concaténations de chaînes dans des appels dynamiques sur des cibles JVM 9+.

L'analyse d'échappement du compilateur de Kotlin 1.4.20 est améliorée également. L’analyse d’échappement est une technique utilisée par le compilateur pour décider si un objet peut être alloué sur la pile ou s'il doit 's’échapper' vers le tas. L’allocation sur la pile est beaucoup plus rapide et ne nécessite pas travail ultérieur du ramasse-miettes. JetBrains met en avant une augmentation moyenne des performances de 10% grâce à cette amélioration.

A remarquer encoure, une toute nouvelle fonctionnalité, expérimentale pour le moment, qui permet d'ignorer  les erreurs de compilation. Cette fonctionnalité vous permet d’essayer votre application même si elle est dans un état où elle ne se compilerait pas normalement. Par exemple, quand vous effectuez une refactorisation complexe. Avec ce nouveau mode de compilation, le compilateur ignore tout code erroné et le remplace par des exceptions d’exécution au lieu de refuser de compiler.

Cette fonctionnalité offre deux modes de tolérance pour définir comment les erreurs dans le code peuvent être ignorées. En mode SEMANTIC, le compilateur acceptera du code qui est correct du point de vue de la syntaxe mais qui n’a pas de sens sémantiquement parlant. Un exemple de cela serait do code contenant une incompatibilité de type (comme val x: String = 3), tandis qu'en mode SYNTAX, le compilateur acceptera absolument n’importe quel code, même s’il contient des erreurs de syntaxe. Indépendamment de ce que vous écrivez, le compilateur essaiera toujours de générer un exécutable fonctionnel.

A remarquer encore, l'amélioration du plugin CocoaPods avec la prise en charge des nouvelles bibliothèques livrées avec Xcode 12

Toutes les nouveautés de Kotlin 1.4.20 sont décrites dans ce billet de JetBrains.