JetBrains vient d’actualiser la feuille de route publique de Kotlin avec ses projets pour 2021 et au-delà. Cette mise à jour couvre les évolutions prévues pour le langage, les outils et l’écosystème pour l’année à venir. Vous pouvez consulter la feuille de route mise à jour pour la liste exhaustive des nouveautés à venir, mais nous présentons ici neuf points clés.
- Une grande avancée pour le nouveau compilateur
- Sealed when
- Pari sur WebAssembly
- Nouveau ramasse-miettes Kotlin/Native sur la voie d’une version expérimentale
- Amélioration des outils liés à iOS dans KMM
- Prise en charge de la cible Apple Silicon dans les outils Kotlin Multiplatform
- Nouvelles façons d’améliorer les performances et la stabilité de l’EDI
- Nouvelles fonctionnalités pour les principales bibliothèques
- Application du nouveau style graphique aux ressources fournies à la communauté
1. Une grande avancée pour le nouveau compilateur
Le nouveau compilateur Kotlin est un projet de grande ampleur qui consiste à réécrire les backends JVM et JS ainsi que le frontend conformément à la nouvelle architecture. Une fois achevé, ce projet devrait apporter des améliorations de performance significatives, permettre la prise en charge des API de plugins du compilateur et donner la possibilité de créer de nouvelles fonctionnalités de langage. JetBrains vient de publier le nouveau backend JVM du compilateur et se concentre à présent sur d’autres éléments.
Pour parvenir à booster la performance, JetBrains a besoin du nouveau frontend du compilateur. L'entreprise y travaille activement depuis un certain temps et se rapproche de la version Alpha. Dans un premier temps, il ne prendra en charge que la cible JVM et ne fonctionnera qu’avec un ensemble précis de projets. S’il est activé de façon explicite, le nouveau frontend doublera la vitesse de compilation.
Dans un second temps, il s’agira de stabiliser le nouveau backend Kotlin/JS. Cela nécessite la mise en œuvre d’une compilation incrémentielle et d’une génération de carte source.
2. Sealed when
Avez-vous une fonction utilitaire dans votre base de code qui rend l’instruction when de Kotlin exhaustive ? JetBrains espère que vous n’en aurez bientôt plus besoin. L'éditeur de logiciels pour les développeurs prévoit d’introduire sealed when, une fonctionnalité attendue depuis longtemps qui a généré 230 votes dans YouTrack. La syntaxe spécifique du langage n’est pas encore prête, mais l’idée générale est de permettre au compilateur de vous avertir si votre instruction when n’est pas exhaustive. Cela améliorera la sécurité de votre code sans que vous ayez à introduire vos propres fonctions.
3. Pari sur WebAssembly
JetBrains pense que WebAssembly deviendra la nouvelle norme pour la création d’applications web riches à l’avenir et que Kotlin devrait être un langage parfaitement adapté pour cela. C’est pourquoi l'entreprise a décidé de tout miser sur l’association Kotlin/Wasm. Cela a commencé par la création d'une équipe dédiée qui y travaillera à plein temps. JetBrains prévoit d’itérer sur les performances, de travailler en étroite collaboration avec les auteurs des propositions de ramasse-miettes WebAssembly, d’implémenter des fonctionnalités de base du langage Kotlin, des bibliothèques et une prise en charge basique de Gradle, et d’ajouter une interopérabilité JavaScript expérimentale.
4. Nouveau ramasse-miettes Kotlin/Native sur la voie d’une version expérimentale
JetBrains a déjà prototypé la plupart des composants requis pour créer un ramasse-miettes simple. L’étape suivante consiste à écrire une implémentation d’un ramasse-miettes multithread. La première version sera lente, donc non adaptée pour la production. Mais JetBrains a l’intention de la rendre publique dans le courant de l’année pour commencer à recueillir des retours d’expérience. Vous ne devrez plus voir des InvalidMutabilityException lorsque vous travaillez avec Kotlin/Native.
5. Amélioration des outils liés à iOS dans KMM
KMM étant une technologie multiplateforme, JetBrains souhaite offrir aux développeurs des outils pratiques pour iOS. Outre la refonte du modèle de mémoire Kotlin/Native, il reste encore beaucoup à faire. Pour le moment, l'équipe Kotlin travaille à améliorer l’expérience utilisateur de l’intégration de Cocoapods et à masquer la tâche de build Gradle packForXcode du script par défaut pour simplifier la configuration de projet et la première expérience.
6. Prise en charge de la cible Apple Silicon dans les outils Kotlin Multiplatform
L’adoption de l’Apple Silicon poursuit sa croissance. Le compilateur Kotlin/Native fonctionne déjà sur cette plateforme et peut produire des binaires. Pour vous permettre de profiter pleinement d’Apple Silicon dans vos projets, JetBrains va la prendre en charge dans le plugin Kotlin Multiplatform Gradle et dans toutes les bibliothèques Kotlinx.
7. Nouvelles façons d’améliorer les performances et la stabilité des EDI
La prise en charge rapide et fluide des EDI reste la priorité de JetBrains. Bien que la solution à long terme pour augmenter sa réactivité repose sur le nouveau compilateur, l'entreprise continue à prendre en charge ses outils actuels et cherche de nouveaux moyens de booster vos performances.
Le plugin Kotlin pour IntelliJ IDEA et Android Studio utilise plus de 30 index différents. La refactorisation du système d’index semble donc pouvoir offrir de nombreuses possibilités d’améliorer la vitesse et la stabilité de l’analyse du code. En outre, JetBrains prévoit d’augmenter considérablement la vitesse de la navigation et de Find Usages dans les EDI.
8. Nouvelles fonctionnalités pour les principales bibliothèques
JetBrains continue à améliorer les bibliothèques standard et kotlinx, comme les coroutines et la sérialisation. Voici quelques-unes de ces améliorations :
- La prise en charge multiplateforme des tests avec fonctions suspensives dans les coroutines, ce qui améliorera la suite de tests des projets KMM et des projets JVM purs.
- L’intégration avec le streaming Java I/O dans la sérialisation, pour prendre en charge la désérialisation de fichiers volumineux à partir d’une source de données arbitraire, comme un réseau ou un flux de système de fichiers.
- La suppression de !! après readLine() afin de rendre la syntaxe du programme « Hello world » plus intuitive pour les utilisateurs débutants.
9. Application du nouveau style graphique aux ressources fournies à la communauté
Avez-vous remarqué que Kotlin a un nouveau logo ? Cela fait partie du projet de nouveau style visuel de JetBrains, dans le cadre duquel l'entreprise a actualisé ses couleurs, sa typographie et son identité. JetBrains prévoit maintenant d’utiliser ce nouveau style pour mettre à jour les ressources fournies aux groupes d’utilisateurs de Kotlin :
- Logo pour les groupes d’utilisateurs
- Photo de profil pour différentes plateformes
- Photo de couverture de Meetup.com
Consulter la feuille de route de Kotlin