Kotlin 2.0 déjà en vue : JetBrains prévoit de le livrer avec la version stable du compilateur K2
qui promet des gains de performance et ouvre la voie au développement de nouvelles fonctionnalités de langage

Kotlin 2.0 est déjà en vue. Dans un billet de blog, JetBrains a évoqué le passage futur à une version majeure pour son langage de programmation orienté objet et fonctionnel, avec un typage dynamique qui permet de compiler pour la machine virtuelle Java, JavaScript, et vers plusieurs plateformes en natif (grâce à LLVM). Au coeur de cette décision se trouve le développement du nouveau compilateur K2 qui promet des gains de performance et ouvre la voie au développement de nouvelles fonctionnalités de langage. K2 sera livré en version stable dans la prochaine version majeure de Kotlin.

JetBrains travaille depuis un certain temps sur un nouveau frontend pour le compilateur Kotlin, actuellement connu sous le nom de code "K2". Le frontend est la partie du compilateur qui analyse votre code et effectue l'analyse sémantique, l'analyse du flux de données, la résolution des appels et l'inférence de type. C'est la partie du compilateur avec laquelle les développeurs interagissent le plus. C'est également la partie du compilateur qui s'exécute en permanence dans votre EDI, signale tous les messages d'erreur et d'avertissement et vous aide dans des tâches telles que la saisie semi-automatique, les inspections sémantiques, les intentions et les refactorisations.

Le nouveau frontend est déjà disponible en préversion. JetBrains est continuellement en train de le peaufiner et le rendre plus stable et prévoit d'en faire le frontend de compilation par défaut dans une future version de Kotlin. Cette future version du langage, JetBrains a décidé de la nommer Kotlin 2.0.

Nom : kotlinK2.png
Affichages : 41458
Taille : 1,48 Mo

Kotlin 2.0 est donc à l'horizon. Nous vous en disons plus dans la suite en vous présentant sa feuille de route, la motivation de JetBrains et ce que vous pouvez attendre de cette version de Kotlin.

Feuille de route de Kotlin 2.0

JetBrains prévoit de publier une autre version traditionnelle sous le nom de Kotlin 1.9, qui inclura des mises à jour du développement en cours de l'interface de compilateur K2 alors qu'elle se rapproche de sa stabilité. Mais, il n'y aura pas de Kotlin 1.10. La prochaine version majeure après Kotlin 1.9 sera Kotlin 2.0.

Pourquoi Kotlin 2.0 ?

Le frontend est une partie importante du compilateur, et l'interface de compilateur K2 n'est pas juste une version retravaillée de l'ancienne interface de compilateur - c'est une réécriture complète à partir de zéro basée sur la nouvelle architecture. JetBrains a publié des détails techniques sur les différences dans divers blogs, vidéos et conférences. Mais en quelques mots, la nouvelle architecture est plus rapide et plus extensible de par sa conception, résout la dette technique dans l'ancien frontend du compilateur, corrige des bogues et des problèmes particuliers à divers endroits et ouvre la voie à de futures extensions du langage.

Pour les langages de programmation, la version majeure est souvent incrémentée lorsque des fonctionnalités majeures ou des modifications avec rupture de compatibilité sont introduites. Cependant, pour les logiciels, une version majeure peut être incrémentée chaque fois que quelque chose est substantiellement réécrit pour signifier une refonte majeure, même si l'ensemble de fonctionnalités reste essentiellement le même. Malgré le fait que Kotlin est un langage, JetBrains a décidé de suivre la pratique du développement de logiciels. Le compilateur Kotlin est avant tout un gros logiciel et la version du langage Kotlin est définie par la version de son compilateur.

Faut-il s'attendre à des changements de rupture de compatibilité ?

Kotlin change à chaque nouvelle version du langage. De nouvelles fonctionnalités de langage sont introduites et les anciens bogues sont corrigés. JetBrains essaie toujours de minimiser le nombre et l'impact des changements susceptibles de casser le code et essaie de suivre le processus d'évolution du langage Kotlin. Kotlin 2.0 ne sera pas différent à cet égard.

JetBrains évite consciemment d'introduire de nouvelles fonctionnalités dans Kotlin 2.0. La réécriture du frontend du compilateur Kotlin est un changement considérable et introduit un certain nombre d'améliorations à elle seule. D'une part, le nouvel algorithme d'analyse des flux de données est plus précis et conduit à de meilleures conversions intelligentes qu'auparavant. Cela transforme le code rouge qui ne se compile pas dans Kotlin 1.9 avec l'ancien frontend en code vert qui se compile dans Kotlin 2.0, ce qui est, techniquement, un aspect déterminant de la nouvelle fonctionnalité du langage Kotlin. Cependant, il ne s'agit ici que d'un effet secondaire d'une nouvelle architecture de compilateur.

De plus, des tonnes de bogues de longue date ont été corrigés et, inévitablement, certains de ces correctifs pourraient casser du code qui reposait accidentellement sur un comportement incorrect du compilateur. JetBrains étudie minutieusement l'impact de tous les changements de comportement entre l'ancien et le nouveau frontend K2 et fait des efforts supplémentaires pour reproduire l'ancien comportement chaque fois que cela est possible si cela peut affecter un nombre important d'utilisateurs Kotlin.

JetBrains s'engage à minimiser l'impact de la migration de votre code de Kotlin 1.9 vers Kotlin 2.0. L'éditeur de logiciels pour développeurs vous tiendra au courant du processus de stabilisation de Kotlin 2.0 et vous donnera suffisamment de temps pour essayer cette version dans vos projets à l'avance afin que vous puissiez signaler toute régression qu'il aurait pu manquer lors de ses tests. Actuellement, JetBrains se concentre sur une version de qualité bêta du frontend K2 qui devrait être disponible plus tard cette année.

Qu'en est-il du support EDI pour Kotlin 2.0 ?

Le plugin Kotlin IDE est intégré aux mises à jour d'IntelliJ IDEA et Android Studio. Il inclut une copie du frontend du compilateur Kotlin pour l'analyse sémantique de votre code, mais ce n'est pas la version du compilateur Kotlin qui est utilisée pour réellement compiler votre code. La version réelle du compilateur est déterminée par les paramètres dans vos fichiers build. Ainsi, lorsque vous compilerez votre code avec la version 2.0 du langage Kotlin, vous utiliserez le nouveau frontend du compilateur et bénéficierez de tous les avantages en termes de performances de la nouvelle architecture du compilateur. Cependant, l'EDI pourrait toujours utiliser l'ancien frontend pour inspecter votre code.

Afin de vous offrir les avantages en termes de performances de la nouvelle interface du compilateur dans votre EDI, JetBrains est en train d'écrire une toute nouvelle version du plugin Kotlin IDE qui est construite sur le frontend K2. JetBrains travaille actuellement pour sortir une préversion publique de ce nouveau plugin.

À quoi s'attendre après Kotlin 2.0 ?

La nouvelle architecture du frontend du compilateur de Kotlin 2.0 permet une implémentation propre de nombreuses nouvelles fonctionnalités intéressantes. Certaines de ces fonctionnalités, comme les récepteurs de contexte KT-10468, sont déjà disponibles en préversion dans l'ancienne interface du compilateur, mais elles ne seront pas activées dans Kotlin 2.0 par défaut. Elles resteront plutôt en phase de préversion. La stabilisation des nouvelles fonctionnalités se produira dans les futures versions de Kotlin 2.x, avec l'implémentation d'autres nouveautés que JetBrains a dans son pipeline.

Quand viendra Kotlin 3.0 ? JetBrains ne le sait pas encore. Mais l'éditeur est en train de discuter de nombreux changements importants à apporter au langage, en particulier les demandes les plus populaires de sa dernière enquête sur les fonctionnalités de Kotlin. Et il est possible que certains de ces changements soient suffisamment importants pour justifier la prochaine version majeure de Kotlin.


Voici ainsi présenté les plans de JetBrains en ce qui concerne Kotlin et en particulier le nouveau frontend de compilateur K2. N'hésitez pas à l'essayer et faire part de vos commentaires à JetBrains. À partir de Kotlin 1.8.20, vous pouvez activer un aperçu de Kotlin 2.0 via le flag de version de Kotlin.

Activer le compilateur K2 pour commencer à le tester