La feuille de route publique de JetBrains, dévoilée le 5 octobre, fixe plusieurs priorités de développement pour le langage à typage statique pour la machine virtuelle Java JVM, Android et les navigateurs. D’abord, une réécriture du compilateur, ensuite, des améliorations pour le développement mobile multi-plateforme, et enfin, un compilateur back-end Kotlin-to-WebAssembly.

En 2017, le support de Google pour la création d'applications mobiles Android, en plus de Java et de C++, avait donné un sérieux coup de pouce au langage. La réécriture du compilateur, qualifiée de priorité essentielle de la feuille de route, concentrera ses efforts sur la rapidité, le parallélisme, l'unification et l'enfichabilité. Elle prévoit également une capacité d’auto-compilation du compilateur. Le support du compilateur actuel sera maintenu pour la correction des bogues.

La feuille de route met en perspective les principaux domaines sur lesquels travaille l'équipe de développeurs, mais sans lier la livraison des fonctionnalités ou des correctifs à des versions spécifiques et à des dates de sortie. La feuille de route couvre une période de six mois et sera mise à jour tous les trois mois. Concernant le développement mobile multi-plateforme, la feuille de route prévoit une amélioration de l'expérience utilisateur et de l'ensemble des fonctionnalités pour le partage de code sur les plateformes mobiles.

Les autres priorités dans l’écosystème Kotlin

Parmi les autres priorités mentionnées dans la feuille de route, on peut citer :

- Le développement de la JVM côté serveur, avec un support accru pour les cas d’usage dans l'écosystème Kotlin ;

- L’accélération du cycle édition-test-débogage ;

- L’amélioration des performances et de la stabilité de l'IDE Kotlin.

La feuille de route comporte également une section consacrée aux sous-systèmes, rappelant les plus importants projets en cours de développement, dont :

- le prototypage d'un compilateur pour la proposition Wasm GC, laquelle prévoit un compilateur de back-end Kotlin-to-WebAssembly. La dépréciation et la suppression du support Wasm dans Kotlin/Native via LLVM sont envisagées.

- le prototypage d'un nouveau ramasse-miettes pour Kotlin/Native et l’amélioration de l'exportation du code de Kotlin/Native vers Objective-C.

- le support linguistique pour les enregistrements et les « classes scellées » JVM.

- la publication de classes inline stables et ayant une compatibilité Valhalla sécurisée. Le projet Valhalla explore les capacités avancées de la VM Java et du langage.

- Le prototypage de récepteurs multiples.

- La stabilisation du nouveau back-end JVM IR (représentation intermédiaire). JVM IR fait partie du nouveau compilateur.

- La stabilisation du nouveau back-end JS IR introduit dans Kotlin 1.4 pour Kotlin/JS, et l’amélioration du support pour Dukat, qui permet la conversion automatique des fichiers de déclaration TypeScript.

- L’amélioration de la gestion des dépendances pour iOS.