¿Qué pasa con las versiones de Javascript?

Una mirada a ECMAScript, intérpretes de Javascript y transpiladores.

5 de enero, 2020 – 3 min read

El mundo de Javascript puede ser un mundo confuso. La gente habla de ECMAScript, Javascript, ES5, y ES2015 (que es lo mismo que ES6 por cierto).

En este artículo, voy a explicar el panorama de Javascript.

Javascript Yellow – Photo by Joseph Gruenthal on Unsplash

ECMAScript es una especificación del lenguaje, y Javascript implementa esta especificación.

Cada pocos años ECMAScript lanza una nueva versión. Básicamente, la nueva versión contiene una lista de nuevas características que deben ser añadidas.

Por ejemplo, en la nueva versión de ECMAScript podría haber una nueva función: add() que sume dos números.

De este modo, por fin se podrán sumar 2 números con una función -sé que no es una característica útil pero tenedme en cuenta por el bien del ejemplo 🙌

const result = add(12, 4);
console.log(result);

Cuando esto se haya decidido, será tarea de todos los intérpretes de Javascript implementar esta nueva característica.

Intérpretes de Javascript

Un intérprete de Javascript es un programa que leerá y ejecutará código Javascript. Todos los navegadores que soportan Javascript son intérpretes de Javascript.

Además de los navegadores, también hay otros intérpretes de Javascript. NodeJS es un ejemplo principal de un intérprete que nos permite ejecutar Javascript fuera de un navegador. Es un intérprete porque también lee y ejecuta Javascript (además de proporcionar APIs al SO).

No todo el mundo actualiza su navegador, y no todos los navegadores soportan las mismas características de Javascript. Y aquí es donde las cosas se complican.

La última versión de ECMAScript es ES10. Sin embargo, no todos los navegadores soportan esta nueva versión de ES, ya que todavía tienen que implementar las nuevas características.

Además, hay mucha gente con versiones anticuadas de su navegador, por lo que podría pasar un tiempo antes de que todos los usuarios puedan ejecutar esas nuevas y elegantes características de ES10.

Versiones de ES

Demos un pequeño rodeo y hablemos de las versiones de ES.

Como he mencionado en la sección anterior, la última versión de ECMAScript es ES10. Ahora no hay realmente una convención de nomenclatura cuando se trata de versiones de ECMAScript. Así que ES10 también se llama ECMAScript2019 y ES2019.

Además, el último cambio realmente grande en el lenguaje fue con ES6, que salió en 2015, por lo que a veces también se denomina ES2015 – Sí, es confuso, lo sé 😌

Debido a que sólo hay cambios menores en el lenguaje después de ES6, todas las versiones posteriores a ES6 a veces también se denominan ESNext.

Transpiladores de Javascript

¿Recuerdas el problema de que no todos los navegadores soportan las últimas características de ES10? Hay una solución. Transpiladores

Babel es un ejemplo de transpilador de Javascript. Babel convertirá una versión más reciente de Javascript a una más antigua. De esta forma puedes usar las nuevas y extravagantes características de ES10, y dejar que Babel lo transpile a la ampliamente soportada versión ES5.

Diferencia entre NodeJS y Navegadores

NodeJS y Navegadores son ambos intérpretes de Javascript. Dependiendo de la versión del navegador y de la versión de Node que tengas, pueden soportar la misma versión de ECMAScript.

Sin embargo, Node se ejecuta directamente en un ordenador. Esto significa que hay una serie de bibliotecas incluidas con Node que no funcionarán en el navegador.

Por ejemplo, en NodeJS se pueden crear nuevos archivos. En un navegador, esto sería un gran riesgo de seguridad por lo que no es posible.

Es por eso que los programas de NodeJS escritos en la misma versión de ECMAScript todavía no se ejecutarán en su navegador que soporta la misma versión.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.