CheerpJ : un compilateur bytecode Java vers JavaScript

Par:
fredericmazue

ven, 23/06/2017 - 14:59

La société Learning Technologies vient d'annoncer CheerpJ un compilateur basé sur LLVM / Clang permettant de développer des applications Web en Java, sans pour autant qu'il soit nécessaire d'installer un plugin sur les navigateurs pour les exécuter.

Une telle application sera d'abord écrite comme une application Java normale, et même compilée comme une application Java normale.

Ce n'est qu'une fois l'application compilée par le compilateur java que CheerpJ intervient. CheerpJ reçoit en entrée un fichier .class, ou même une archive JAR complète. CheerpJ extrait le codebyte et le convertit en code Java. Ainsi il est possible de convertir une application Java même si l'on ne dispose pas de son code source.

Le code JavaScript supporte le chargement dynamique des classes et la réflexion du langage Java. En ce qui concerne les entrées/sortie le code généré par CheerpJ offre des moyens d'accès aux fichiers. Cela comprend un système de fichiers en lecture seule basé sur HTTP, un système de fichiers en lecture-écriture localebasé sur indexDB qui est persistant entre les sessions, et la possibilité d'accéder à des chaînes JS sous forme de fichiers

Le code produit pas CheerpJ nécessite bien évidemment un environnement d'exécution. Celui-ci a été généré par lae conversion de l'environnement d'exécution de Java OpenJDK SE par Cheerpj. L'environnement intègre en outre un compilateur à la volée pour la génération dynamique de classes Java. Cet environnement d'exécution est hébergé par Learning Technologies.

Pour le moment, CheerpJ ne cible que du code JavaScript, mais Learning Technologies indique qu'il sera possible de cibler WebAssembly dans le futur.