Javascrip{filter}t tiene un historial de nombres muy extraño.
Se lanzó por primera vez en 1995 como parte del Netscape Navigator, que dio al nuevo lenguaje el nombre de Livescrip{filtering}t. Un año después, para captar el revuelo mediático sobre Java en ese momento, el nombre se cambió temporalmente a Javascrip{filtering}t (por supuesto, la relación entre Java y Javascrip{filtering}t es la misma que la de Lei Feng y Lei Feng Tower, no tiene nada que ver con ello)
El chiste del nuez torcido no tiene ninguna gracia
Nota del traductor: La entrada de Javascrip{filter}t de Wikipedia describe esta historia con más detalle
En 1996, Netscape presentó Javascrip{filtering}t a ECMA International (Asociación Europea de Fabricantes de Ordenadores) para su estandarización, y finalmente finalizó un nuevo estándar de lenguaje, que fue ECMAscrip{filtering}t. Desde entonces, ECMAscrip{filtering}t ha sido la base de todas las implementaciones de Javascrip{filtering}t, aunque por razones históricas y de mercado (aparentemente ECMAscrip{filtering}t no es un nombre que guste...... En realidad, solo usamos ECMAscrip{filter}t para llamar al estándar, y normalmente usamos Javascrip{filter}t para llamar a este lenguaje.
Terminología:
- Estándar: Un conjunto de reglas que definen qué lo distingue de otras cosas
- Implementación: La implementación específica/práctica real de un estándar
Sin embargo, a los desarrolladores de Javascrip{filtering}t no les importa mucho esto, porque ECMAscrip{filtering} no ha cambiado mucho en los 15 años desde su creación, y muchas implementaciones reales ya son muy diferentes del estándar. De hecho, tras el lanzamiento de la primera versión de ECMAscrip{filtering}t, se publicaron dos versiones más poco después, pero desde el lanzamiento de ECMAscrip{filter}t 3 en 1999, no se han añadido con éxito cambios a la especificación oficial en diez años. En cambio, los fabricantes de navegadores se están apresurando a expandir sus propios lenguajes, dejando a los desarrolladores web sin otra opción que experimentar y dar soporte a estas APIs. Incluso después del lanzamiento de ECMAscrip{filter}t 5 en 2009, pasaron varios años hasta que estas nuevas especificaciones obtuvieron un amplio apoyo en los navegadores, pero la mayoría de los desarrolladores seguían escribiendo código al estilo ECMAscrip{filtering}t 3 y no sentían la necesidad de aprender sobre ellos.
Nota del traductor: El borrador de ECMAscrip{filter}t versión 4 fue abandonado porque era demasiado agresivo, y Actionscrip{filtering}t 3.0 de Adobe es la única implementación de ECMAscrip{filtering}t edición 4 (Flash casi unificó la web)
Para 2012, las cosas empezaron a cambiar de repente. Existe soporte push to end para versiones antiguas de IE, y es más factible escribir código al estilo de ECMAscrip{filter}t 5 (ES5). Al mismo tiempo, se lanza una nueva especificación ECMAscrip{filtering}t. En este punto, la gente empezó a acostumbrarse a describir varias implementaciones de Javascrip{filtering}t en términos de soporte de versiones para la especificación ECMAscrip{filter}t. Este nuevo estándar se llamaba originalmente ES. Armonía. En 2015, TC39, el comité responsable de desarrollar el borrador de la especificación ECMAscrip{filter}t, decidió cambiar el sistema para definir nuevos estándares a una vez al año, lo que significa que cada nueva característica puede añadirse una vez aprobada, en lugar de que la especificación anterior solo se finaliza después de que el borrador completo esté completo y todas las características estén en orden. Como resultado, ECMAscrip{filtering}t versión 6 fue renombrada como ECMAscrip{filtering}t 2015 (ES2015) antes de su publicación en junio.
Todavía se proponen muchas características o sintaxis nuevas de Javascrip{filter}t, incluyendo decoradores, async-await y propiedades de clase estática. A menudo se les denomina ES7, ES2016 o ES. Después, pero en realidad solo pueden llamarse propuestas o posibilidades, al fin y al cabo, la especificación ES2016 aún no está completa, y es posible que todas se presenten, o que ninguna se presente. TC39 divide una propuesta en 4 fases, y puedes comprobar en qué fase se encuentra cada propuesta en la web de Babel.
Entonces, ¿cómo usamos este montón de terminología? La siguiente lista puede ayudarte:
- ECMAscrip{filter}t: Un lenguaje estandarizado por ECMA International y supervisado por el comité TC39. A menudo se usa para referirse al propio estándar.
- Javascrip{filtering}t: El nombre más común para varias implementaciones del estándar ECMAscrip{filtering}t. Este término no se limita a una versión específica de la especificación ECMAscrip{filtering}t, y puede usarse para cualquier grado variable de implementación de cualquier versión de ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): La quinta edición de ECMAscrip{filtering}t, estandarizada en 2009. Esta especificación está bastante implementada en todos los navegadores modernos.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): La sexta edición de ECMAscrip{filtering}t fue revisada y estandarizada en 2015. Este estándar está parcialmente implementado en la mayoría de los navegadores modernos. Puedes consultar esta tabla de compatibilidad para ver cómo se implementan los diferentes navegadores y herramientas.
- ECMAscrip{filter}t 2016: La esperada séptima edición de la revisión ECMAscrip{filter}t, prevista para el próximo verano. Las características específicas que se incluirán en esta especificación aún no se han finalizado
- Propuestas ECMAscrip{filter}t: Las propuestas de funcionalidades y sintaxis que se consideren para su inclusión en futuras versiones del estándar ECMAscrip{filter}t pasarán por cinco etapas: Hombre de paja, Propuesta, Borrador, Candidato y Finalizado.
A lo largo de este blog, me referiré a la versión actual de ECMAscrip{filtering}t como ES6 (porque es a lo que la mayoría de desarrolladores están más acostumbrados), a la especificación del próximo año como ES2016 (porque, a diferencia de ES6/ES2015, este nombre se usará durante todo el proceso de estandarización), y a futuros conceptos de lenguaje que aún no se hayan finalizado o redactado propuestas ECMAscrip{filtering}t o Javascrip{filter}t proposal. Haré todo lo posible por seguir este artículo en cualquier ocasión que pueda causar confusión.