BT

Accueil InfoQ Actualités J2CL : Un Transpiler Java Vers JavaScript

J2CL : Un Transpiler Java Vers JavaScript

Leia em português

This item in japanese

Favoris

Conçu, développé et mis en open source par Google, J2CL est un compilateur qui convertit du code Java en code Javascript. Les développeurs J2CL disent que le compilateur "permet une utilisation transparente de Java dans des applications JavaScript".

J2CL tente de résoudre un problème différent de celui des frameworks similaires Java vers Javascript tels que GWT. Il n'est pas conçu pour concurrencer ou remplacer les frameworks JavaScript existants. J2CL concerne plutôt l’interopérabilité et la réutilisation de code multi plateforme. Selon les développeurs, "vous pouvez utiliser J2CL uniquement pour rendre du code Java accessible à partir de JavaScript ou créer une application complète avec tout ce dont vous avez besoin selon ce qui vous convient le mieux".

L'outil a été développé dans un souci de flexibilité et peut être appliqué de différentes manières. L'une de ces manière consiste à s'assurer qu'une logique complexe s'exécutant sur plusieurs plates-formes implémentées dans différentes technologies peut être partagée sur plusieurs plates-formes. Par exemple, Thomas Deegan, un ancien contributeur du projet J2CL, a déclaré: "le code du frontal Google Docs doit être écrit pour le Web ... J2CL transpile toutes les manipulations de documents et la logique de rendu à partir de Java -> JS". Une autre utilisation peut être la réutilisation d'une bibliothèque écrite en Java dans une application Node.js.

J2CL peut traduire la plupart du code Java existant à partir de son source, mais toutes les API Java ne sont pas prises en charge, notamment l'API Reflection. Par défaut, le code traduit n'est pas public et un certain nombre d'annotations Java de JsInterop peuvent être utilisées pour identifier les classes, méthodes, variables d'instance ou autres codes à exposer. Le projet propose un simple « hello world » comme exemple pour démontrer l'utilisation. Un extrait légèrement modifié de cet exemple est présenté ci-dessous. Il présente une classe Java annotée et son utilisation en JavaScript.

La classe Java suivante, passée dans J2CL:

package com.acme

import jsinterop.annotations.JsType;

@JsType
public class HelloWorld {

  public static String getHelloWorld() {
    return "Hello from Java!";
  }

}

peut être utilisé en JavaScript comme ceci

const HelloWorld = goog.require('com.acme');
console.log(HelloWorld.getHelloWorld());

Les développeurs affirment qu'il peut être utilisé en production et est utilisé comme "la technologie sous-jacente des applications GSuite les plus avancées développées par Google, notamment GMail, InBox, Docs, Slides et Calendar".

Le projet a été mis en open source à la fin de l’année dernière, mais il a été évoqué depuis 2014. À l’origine, J2CL était associé au projet GWT. Cependant, début 2015, les développeurs ont conclu que les objectifs du projet ne pouvaient pas être atteints dans le cadre du projet GWT et ont décidé de le séparer en son propre projet. L'intégration avec les outils existants n'est pas encore disponible et la prise en charge de Windows est actuellement limitée.

Pour plus d'informations, visitez la page Github du projet ou le guide de démarrage.

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

Votre profil est-il à jour? Merci de prendre un instant pour vérifier.

Note: en cas de modification de votre adresse email, une validation sera envoyée.

Nom de votre entreprise:
Rôle dans votre entreprise:
Taille de votre entreprise:
Pays/Zone:
État/Province/Région:
Vous allez recevoir un email pour confirmer la nouvelle adresse email. Ce pop-up va se fermer de lui-même dans quelques instants.