BT

Diffuser les connaissances et l'innovation dans le développement logiciel d'entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités JetBrains Lance Le Nouveau Compilateur Kotlin K2, Kotlin Pour WebAssembly Et Plus

JetBrains Lance Le Nouveau Compilateur Kotlin K2, Kotlin Pour WebAssembly Et Plus

Favoris

Lors de son récent événement Kotlin 2021 Premier, JetBrains a fait un certain nombre d'annonces majeures, dont K2, le nouveau, compilateur Kotlin plus rapide, prise en charge de WebAssembly, du processeur de symboles Kotlin, d'un nouveau plug-in de couverture de code et d'une analyse statique améliorée.

Nommé d'après ce qui est maintenant considéré comme la plus haute montagne du monde, K2 vise à fournir une nouvelle base pour l'évolution future de Kotlin et une base commune pour toutes les plates-formes prises en charge. De plus, il est plus rapide et apporte une nouvelle API pour créer des extensions au compilateur.

Le changement le plus convaincant apporté par K2 est probablement l'adoption de nouveaux backends basés sur l'IR, alors que l'ancien compilateur générait le code cible directement à partir de l'arbre syntaxique et des informations sémantiques sans utiliser de représentation intermédiaire. Il s'agit d'un mouvement de grande envergure qui permet à K2 de partager une certaine logique entre ses différents backends, à savoir la JVM, JS et les backends natifs. Par exemple, toutes les optimisations peuvent désormais être appliquées au niveau IR, ce qui est commun à toutes les plates-formes cibles. De même, le processus d'ajout de nouvelles fonctionnalités au langage et de leur prise en charge sur toutes les plateformes cibles en bénéficiera également.

K2 n'inclut pas seulement de nouveaux backends pour les plates-formes prises en charge, il fournit également une nouvelle interface, qui vise principalement à améliorer les performances et une meilleure prise en charge des fonctionnalités avancées de l'IDE, telles que la coloration de la syntaxe, la vérification de la syntaxe, etc. La nouvelle interface est construite autour d'une représentation intermédiaire d'interface (FIR) qui est optimisée pour la résolution des appels et prend en charge le désucrage d'un certain nombre de constructions de langage en représentations simplifiées. Par exemple, +, += et d'autres opérateurs sont désagrégés en appels de fonction explicites, for est désagrégé en un while lors de l'utilisation d'un itérateur, etc.

Comme mentionné, K2, est nettement plus rapide que l'ancien compilateur. Selon les benchmarks JetBrains, vous pouvez vous attendre à une accélération 2x.

L'intégration entre Kotlin et l'espace Web obtient un nouveau lecteur avec Kotlin/Wasm.

Kotlin pour WebAssembly fournira aux utilisateurs un outil puissant pour écrire du code optimisé pour l'efficacité du temps de chargement, la taille et les vitesses prévisibles. Il vous permettra d'utiliser votre langage préféré - Kotlin - et ses concepts familiers pour écrire du code pouvant interagir avec les applications JavaScript.

Alors que Kotlin/JS reste la technologie à utiliser pour intégrer Kotlin dans une application Web, Kotlin/Wasm vise à fournir un nouvel outil qui s'adaptera à un scénario plus spécifique dans lequel vous souhaitez effectuer des tâches coûteuses en calcul.

Kover est le nouveau plugin de Kotlin pour la couverture de code, qui peut être utilisé pour le code construit avec le compilateur Kotlin/JVM. L'outil peut être utilisé en tant que tâche Gradle, localement sur la machine d'un développeur ou intégré dans un pipeline CI. Il fonctionne également avec Kotlin Multiplatform et est compatible avec la bibliothèque de couverture de code Java JaCoCo.

Si vous êtes intéressé par la métaprogrammation, vous apprécierez sûrement le travail que JetBrains et Google ont fait autour du Kotlin Symbol Processing (KSP). JetBrains dit que KSP peut être considéré comme un préprocesseur de programmes Kotlin, actuellement il les comprend. Cela signifie que KSP représente explicitement des constructions telles que des classes, des membres de classe, des fonctions et des paramètres associés et les rend accessibles aux processeurs de manière structurée. Cependant, KSP ne permet pas aux processeurs de modifier le code d'un programme, qui est traité en lecture seule. Kotlin KSP est désormais stable et fournit la base pour Room et Moshi, deux processeurs d'annotation et plusieurs autres plugins.

Enfin, la plupart des programmeurs Kotlin accueilleront Qodana pour Kotlin, un analyseur statique pour les programmes Kotlin. Qodana, qui prend également en charge d'autres langues, peut être exécuté en tant qu'outil autonome ou intégré à votre pipeline CI. De plus, il peut être intégré à GitHub Actions et peut utiliser des linters tiers.

 

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT