9 points par xguru 2024-12-18 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • 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.

Aucun commentaire pour le moment.