ES4X : un JavaScript performant sur GraalVM
jeu, 04/10/2018 - 16:19
Dans son billet de présentation de ES4X, Paolo Lopes, son auteur, détaille la génèse de cet outil et ce qui l'a motivé à le créer.
Lorsque nous pensons à JavaScript côté serveur, nos esprits pensent toujours nodejs, mais ce n'est pas forcément correct, souligne-t-il car il peut y avoir des alternatives.
A son travail, Paolo travaille avec plusieurs langages, dont Java et JavaScript ce qui le contraint à utiliser différents environnements d'exécution, JVM, V8, ChakraCore... ce qui lui déplaît.
Il se tourne donc vers GraalVM qui se définit ainsi :
GraalVM est une machine virtuelle universelle permettant d'exécuter des applications écrites dans des langages JavaScript, Python 3, Ruby, R, tels que Java, Scala, Kotlin et LLVM, tels que C et C ++.
Pourquoi se soucier d'autres environnements d'exécution se dit alors Paolo. Mais son problème est que JavaScript est pour lui un langage assez lent. Il est lent sur node.js, contrairement aux idées reçues souligne-t-il, et il est lent également sur GraalVM.
Pour remédier à cela, il a conçu le projet appelé EcmaScript pour Eclipse Vert.x ou ES4X . L'idée est simple : Créer un environnement d'exécution EcmaScript moderne au-dessus du toolkit Eclipse Vert.x en utilisant les fonctionnalités de la machine virtuelle Java / GraalVM.
D'après les benchmarks de Paolo, le résultat est impressionnant en termes de performances. Alors que parmi 300 environnements d'exécution, node.js se classe 52ème et que Graal donne des résultats similaires
Alors que ES4X se classe second
ES4X est open source, disponible sur GitHub.