El motor JavaScript V8
V8 es el nombre del motor JavaScript que impulsa Google Chrome. Es lo que toma nuestro JavaScript y lo ejecuta mientras navegamos con Chrome.
V8 es el motor JavaScript, es decir, analiza y ejecuta código JavaScript. El DOM y las demás API de la plataforma web (que en conjunto constituyen el entorno de ejecución) son proporcionadas por el navegador.
Lo interesante es que el motor JavaScript es independiente del navegador en el que se aloja. Esta característica clave permitió el auge de Node.js. V8 fue elegido como el motor que impulsaría Node.js en 2009, y a medida que la popularidad de Node.js explotó, V8 se convirtió en el motor que ahora impulsa una increíble cantidad de código del lado del servidor escrito en JavaScript.
El ecosistema de Node.js es enorme y gracias a V8, que también impulsa aplicaciones de escritorio, con proyectos como Electron.
Otros motores JS
Otros navegadores tienen su propio motor JavaScript:
SpiderMonkey
(Firefox)JavaScriptCore
(también llamadoNitro
) (Safari)- Edge originalmente se basaba en
Chakra
, pero más recientemente se ha reconstruido usando Chromium y el motor V8.
y muchos otros existen también.
Todos esos motores implementan el estándar ECMA ES-262, también llamado ECMAScript, el estándar utilizado por JavaScript.
La búsqueda del rendimiento
V8 está escrito en C++, y se mejora continuamente. Es portátil y se ejecuta en Mac, Windows, Linux y varios otros sistemas.
En esta introducción a V8, ignoraremos los detalles de implementación de V8: se pueden encontrar en sitios más autorizados (por ejemplo, el sitio oficial de V8), y cambian con el tiempo, a menudo radicalmente.
V8 está en constante evolución, al igual que los demás motores JavaScript, para acelerar la Web y el ecosistema de Node.js.
En la web, existe una carrera por el rendimiento que lleva años, y nosotros (como usuarios y desarrolladores) nos beneficiamos mucho de esta competencia porque obtenemos máquinas más rápidas y optimizadas año tras año.
Compilación
JavaScript generalmente se considera un lenguaje interpretado, pero los motores JavaScript modernos ya no solo interpretan JavaScript, lo compilan.
Esto ha estado sucediendo desde 2009, cuando el compilador SpiderMonkey JavaScript se agregó a Firefox 3.5, y todos siguieron esta idea.
JavaScript se compila internamente con V8 mediante compilación Just-in-time (JIT) para acelerar la ejecución.
Esto puede parecer contradictorio, pero desde la introducción de Google Maps en 2004, JavaScript ha evolucionado de un lenguaje que generalmente ejecutaba unas pocas docenas de líneas de código a aplicaciones completas con miles o cientos de miles de líneas ejecutándose en el navegador.
Nuestras aplicaciones ahora pueden ejecutarse durante horas dentro de un navegador, en lugar de ser solo unas pocas reglas de validación de formularios o scripts simples.
En este nuevo mundo, compilar JavaScript tiene perfecto sentido porque, aunque puede llevar un poco más de tiempo tener JavaScript listo, una vez hecho será mucho más eficiente que el código puramente interpretado.