- TeaVM est un outil qui aide les développeurs Java à créer des applications web sans la complexité de la stack de développement JavaScript
- C’est un compilateur ahead-of-time qui transforme le bytecode Java en JavaScript et en WebAssembly afin qu’il puisse s’exécuter dans le navigateur
- Similaire à GWT, mais il utilise le bytecode plutôt que le code source (fichiers class), ce qui lui permet aussi de prendre en charge Kotlin et Scala
- Il est possible de configurer facilement un nouveau projet via un archétype Maven ou un plugin Gradle
- Aucune configuration complexe comme npm, Webpack ou Babel n’est nécessaire, et TeaVM s’occupe automatiquement de tout
- Il offre une compilation rapide, et le JavaScript produit est léger et s’exécute rapidement
- Il affiche aussi un démarrage rapide et de bonnes performances d’exécution sur les appareils mobiles
Objectif de TeaVM
- Le principal objectif est le développement frontend web
- Il n’est pas destiné à convertir l’intégralité d’une base de code Java ou Kotlin existante en JavaScript
- Java n’a pas été conçu pour s’exécuter efficacement dans un navigateur, et certaines API Java (réflexion, ressources, chargeurs de classes, JNI, etc.) sont difficiles à implémenter efficacement, donc leur usage est limité
- Cas où TeaVM est pertinent
- Si vous êtes développeur Java et souhaitez développer un frontend web à partir de zéro
- Si vous utilisez déjà un backend Java et souhaitez intégrer étroitement le code frontend
- Si vous voulez réutiliser une partie du code backend côté frontend
- Si vous êtes prêt à réécrire votre code pour l’adapter aux contraintes de TeaVM
Points forts de TeaVM
- Il reconstruit la structure du code d’origine pour générer un JavaScript proche de ce qu’un humain écrirait à la main
- Des outils d’optimisation avancés réalisent les tâches suivantes :
- Élimination du code mort pour produire un JavaScript extrêmement compact
- Conversion des appels virtuels en appels de fonctions statiques afin d’optimiser les performances
- Réutilisation de plusieurs variables locales au sein d’une seule variable pour maximiser l’efficacité mémoire
- Optimisation des noms de méthodes pour les rendre aussi courts que possible (UglifyJS n’effectue généralement pas ce type d’optimisation)
- Prise en charge des threads : bien que JavaScript ne fournisse pas d’API de threads, TeaVM implémente des green threads
- Compilation rapide
- Débogage directement dans l’IDE grâce aux source maps et au plugin IDEA
- Fournit une API d’interopérabilité avec JavaScript
Pourquoi utiliser TeaVM
- Si un développeur JavaScript est déjà satisfait de son environnement, TeaVM n’est pas nécessaire
- En revanche, il présente de grands avantages pour les développeurs Java, Kotlin et Scala :
- Réduction du temps et du coût nécessaires pour apprendre JavaScript
- Utilisation d’un écosystème de développement unifié : les outils de build (Maven, Jenkins) et de qualité de code (SonarQube) peuvent être réutilisés
- Réduction au minimum du changement de contexte entre backend et frontend
- TeaVM offre au frontend une expérience identique à l’environnement de développement backend
Sortie de TeaVM 0.11.0 : prise en charge de WebAssembly GC
- La nouvelle version 0.11.0 de TeaVM prend en charge WebAssembly GC
- Cela a amélioré les performances et permet aux applications TeaVM de fonctionner de manière plus indépendante d’ECMAScript
Aucun commentaire pour le moment.