# Introduccion

ES4X es un pequeño runtime para aplicaciones EcmaScript >= 5 que se ejecuta en graaljs (opens new window) con la ayuda de vert.x (opens new window). JavaScript es el lenguaje runtime pero no hace uso de nodejs.

# Como funciona

Desarrollar aplicaciones ES4X no es diferente de desarollar otras aplicaciones JavaScript. El archivo package.json define los proyectos. Un proyecto utilizara y conseguira dependencias de 2 fuentes diferentes:

ES4X utiliza GraalVM (opens new window) que es un runtime poliglota en JVM. Esto significa que es posible usar cualquier lenguaje JVM y tambien JavaScript en las aplicaciones.

Vert.x es usado en ES4X para proveer un bucle de eventos optimizado y una libreria IO de alto rendimiento. Utilizar Java desde JavaScript puede ser tedioso porque no hay de que los IDEs infieran informacion de tipo o APIs. Por esta razon ES4X tiene algunos paquetes publicados en npm que hacen el desarrollo mas sencillo al hacer disponibles un pequeño shim para trazar API de Java a JavaScript ademas de la API completa como archivos de definicion TypeScript .d.ts.

# Rendimiento

ES4X fue el JavaScript mas rapido de acuerdo a TechEmpower Frameworks Benchmark Round #18 (opens new window). ES4X es el mas rapido en todos los tests cuando es comparado con marcos (frameworks) de JavaScript:

round-18-js

Y ES4X estaba en el top #10 de todos los otros marcos (frameworks) en otros tests, demonstrando un rendimiento superior que el de los marcos (frameworks) JVM mas populares:

round-18-js