Respuestas:
ECMAScript es el lenguaje, mientras que JavaScript, JScript e incluso ActionScript 3 se denominan "dialectos". Wikipedia arroja algo de luz sobre esto.
Creo que se debe una pequeña lección de historia.
Originalmente, JavaScript se llamaba Mocha y se cambió a Livescript, pero finalmente se convirtió en JavaScript.
Es importante tener en cuenta que JavaScript vino antes de ECMAscript y el historial le dirá por qué.
Para comenzar desde el principio, JavaScript deriva su nombre de Java e inicialmente se le pidió a Brendan Eich (el creador de JS) que desarrollara un lenguaje que se asemejara a Java para la web para Netscape.
Eich, sin embargo, decidió que Java era demasiado complicado con todas sus reglas y se propuso crear un lenguaje más simple que incluso un principiante pudiera codificar. Esto es evidente en cosas como la relajación de la necesidad de tener un punto y coma.
Una vez que se completó el lenguaje, el equipo de marketing de Netscape solicitó a Sun que les permitiera nombrarlo JavaScript como un truco de marketing y, por lo tanto, por qué la mayoría de las personas que nunca han usado JavaScript piensan que está relacionado con Java.
Aproximadamente uno o dos años después del lanzamiento de JavaScript en el navegador, el IE de Microsoft tomó el lenguaje y comenzó a hacer sus propias implementaciones, como JScript. Al mismo tiempo, IE dominaba el mercado y poco después Netscape tuvo que cerrar su proyecto.
Antes de que Netscape cayera, decidieron comenzar un estándar que guiaría la ruta de JavaScript, llamado ECMAScript.
ECMAScript tuvo algunos lanzamientos y en 1999 lanzaron su última versión (ECMAScript 3) antes de entrar en hibernación durante los próximos 10 años. Durante estos 10 años, Microsoft dominó las escenas, pero al mismo tiempo no estaban mejorando su producto y, por lo tanto, nació Firefox (liderado por Eich) y un montón de otros navegadores como Chrome, Opera.
ECMAScript lanzó su quinta edición en 2009 (la cuarta edición fue abandonada) con características como el modo estricto. Desde entonces, ECMAScript ha ganado mucho impulso y está programado para lanzar su sexta edición en unos pocos meses a partir de ahora con los mayores cambios que ha tenido hasta ahora.
Puede usar una lista de características para ECMAScript 6 aquí http://kangax.github.io/es5-compat-table/es6/ y también el soporte del navegador. Incluso puede comenzar a escribir Ecmascript 6 como lo hace con CoffeeScript y usar un compilador para compilar hasta Ecmascript 5.
Si ECMAScript es el lenguaje y JavaScript es un dialecto es discutible, pero no importante. Si continúa pensando así, podría confundirlo. No existe un compilador que ejecute ECMAScript, y creo que JavaScript se considera el lenguaje que implementa un estándar llamado ECMAScript.
También hay otros lenguajes notables que implementan ECMAScript como ActionScript (utilizado para Flash)
ECMAScript = ES:
ECMAScript es un estándar para lenguajes de script.
Los lenguajes como Javascript se basan en el estándar ECMAScript.
El estándar ECMA se basa en varias tecnologías de origen, la más conocida es JavaScript (Netscape) y JScript (Microsoft).
ECMA significa Asociación Europea de Fabricantes de Computadoras
JavaScript = JS:
JavaScript es la implementación más popular del estándar ECMAScript.
Las características principales de Javascript se basan en el estándar ECMAScript, pero Javascript también tiene otras características adicionales que no están en las especificaciones / estándar de ECMA.
ActionScript y JScript son otros lenguajes que implementan el ECMAScript.
JavaScript se envió a ECMA para la estandarización, pero debido a problemas de marca registrada con el nombre Javascript, el estándar se llamó ECMAScript.
Cada navegador tiene un intérprete de JavaScript.
ES5 = ECMAScript 5:
ES5 es una versión del ECMAScript (antiguo / actual).
ES5 es el JavaScript que conoce y usa en el navegador hoy.
ES5 no requiere un paso de compilación (transpiladores) para transformarlo en algo que se ejecute en los navegadores actuales.
La versión 5 de ECMAScript se terminó en diciembre de 2009, las últimas versiones de todos los principales navegadores (Chrome, Safari, Firefox e IE) han implementado la versión 5.
La versión 5.1 se terminó en junio de 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 es una versión del ECMAScript (nuevo / futuro).
Oficialmente, se debe usar el nombre ES2015 en lugar de ES6.
ES6 abordará muchas de las deficiencias del lenguaje central tratadas en TypeScript y CoffeeScript.
ES6 es la próxima iteración de JavaScript, pero no se ejecuta en los navegadores actuales.
Hay bastantes transpiladores que exportarán ES5 para ejecutarse en navegadores.
BabelJS:
BabelJS es el transpiler más popular que transforma el nuevo JavaScript ES6 en el antiguo JavaScript ES5.
BabelJS hace posible escribir la próxima generación de JavaScript hoy (significa ES2015).
BabelJS simplemente toma el archivo ES2015 y lo transforma en un archivo ES5.
Las versiones actuales de los navegadores ahora pueden entender el nuevo código JavaScript (ES2015), incluso si aún no lo admiten.
TypeScript y CoffeeScript:
Ambos proporcionan azúcar sintáctica sobre ES5 y luego se transcompilan en JavaScript compatible con ES5.
Escribe TypeScript o CoffeeScript y luego el transpilador lo transforma en JavaScript ES5.
JavaScript = ECMAScript + DOM + BOM ;
La especificación del lenguaje ECMAScript® define toda la lógica para crear y editar objetos, matrices, números, etc.
DOM ( D DOCUMENTO O bject M odelo) hace que sea posible la comunicación con los documentos HTML / XML (por ejemplo document.getElementById('id');
).
BOM ( B rowser O bject M odel ) es la jerarquía de los objetos del navegador (por ejemplo, objeto de ubicación, objeto de historial, elementos de formulario).
Historial de nombres de JavaScript:
Mocha ► LiveScript ► JavaScript ► (parte de JS resultó en) ECMA-262 ► ECMAScript ► JavaScript (consta de ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
se basa únicamente en los términos documentados acordados en general en los que consiste JavaScript.
Técnicamente, ECMAScript es el lenguaje que todos usan e implementan: es la especificación creada hace muchos años cuando Netscape y Microsoft se sentaron e intentaron estandarizar las secuencias de comandos entre JavaScript (lenguaje de secuencias de comandos de Netscape) y JScript (Microsoft).
Posteriormente, todos estos motores están implementando ostensiblemente ECMAScript, sin embargo, JavaScript (el nombre) ahora se cuelga tanto por razones de nomenclatura tradicionales como por Mozilla como término de marketing para sus diversas extensiones no estándar (que quieren poder "versionar" en realidad )
¿Qué es ECMAScript, es decir, ES?
ECMAScript es un estándar para un lenguaje de script y el lenguaje Javascript se basa en el estándar ECMAScript.
¿Es Javascript exactamente igual que ECMAScript?
JavaScript = ECMAScript + DOM API;
DOM API como: document.getElementById('id');
¿Otros idiomas usan el estándar ECMAScript?
¿Por qué se llama ECMAScript?
Sé que esta es una publicación antigua, pero espero que esto ayude a alguien.
En la década de 1990, comenzaron a salir diferentes versiones de js como javascript de netscape, script Js de Microsoft. Entonces, ecmascript se introdujo como estándar. Pero ecmascript forma solo una parte de javascript que especifica su sintaxis central, tipos, objetos, etc. Probablemente eso explica las implementaciones inconsistentes de javascript en diff. navegadores
Referencia - Wrox (Javascript profesional para desarrolladores web)
JavaScript es un lenguaje ECMAScript.
ECMAScript no es necesariamente JavaScript.
Las respuestas existentes parafrasean bastante bien el punto principal.
El punto principal es que ECMAScript es el lenguaje abstracto simple, sin extensiones específicas de dominio, es inútil en sí mismo. La especificación define solo el lenguaje y los objetos principales del mismo.
Si bien JavaScript y ActionScript y otros dialectos le agregan la biblioteca específica del dominio, puede usarlo para algo significativo.
Hay muchos motores ECMAScript , algunos de código abierto, otros son propietarios. Puede vincularlos a su programa y luego agregar sus funciones nativas al objeto global para que su programa se convierta en scriptable. Aunque con mayor frecuencia se usan en navegadores.
Javascript era el nombre original, destinado a capitalizar la popularidad de Java. ECMA es el organismo de estándares que supervisa el estándar que finalmente se implementó para que los nombres sean más o menos equivalentes.
Las implementaciones tienen otros nombres, como V8 o Rhino, etc.
ECMAScript es un estándar para JavaScrip t, mire estas declaraciones de MDN :
JavaScript (JS) es un lenguaje de programación ligero interpretado o compilado JIT con funciones de primera clase. Si bien es más conocido como el lenguaje de secuencias de comandos para páginas web, muchos entornos que no son del navegador también lo usan, como node.js, Apache CouchDB y Adobe Acrobat. JavaScript es un lenguaje dinámico basado en prototipos, multi-paradigma, que admite estilos orientados a objetos, imperativos y declarativos (por ejemplo, programación funcional). Lea más sobre JavaScript.
El estándar para JavaScript es ECMAScript . A partir de 2012, todos los navegadores modernos son totalmente compatibles con ECMAScript 5.1. Los navegadores más antiguos soportan al menos ECMAScript 3. El 17 de junio de 2015, ECMA International publicó la sexta versión principal de ECMAScript, que oficialmente se llama ECMAScript 2015, y que inicialmente se denominó ECMAScript 6 o ES6. Desde entonces, los estándares ECMAScript están en ciclos de lanzamiento anuales. Esta documentación se refiere a la última versión preliminar, que actualmente es ECMAScript 2018.
Para más información, visite aquí.
Aquí están mis hallazgos:
JavaScript: La Guía definitiva , escrita por David Flanagan, ofrece una explicación muy concisa:
JavaScript se creó en Netscape en los primeros días de la Web y, técnicamente, "JavaScript" es una marca comercial con licencia de Sun Microsystems (ahora Oracle) que se usa para describir la implementación del lenguaje por parte de Netscape (ahora Mozilla). Netscape envió el lenguaje para su estandarización a ECMA y debido a problemas con la marca registrada, la versión estandarizada del lenguaje se quedó con el incómodo nombre "ECMAScript". Por las mismas razones de marca registrada, la versión del lenguaje de Microsoft se conoce formalmente como "JScript". En la práctica, casi todos llaman al lenguaje JavaScript.
Una publicación de blog de Microsoft parece estar de acuerdo con lo que Flanagan explica al decir ...
ECMAScript es el nombre oficial del lenguaje JavaScript que todos conocemos y amamos.
.. lo que me hace pensar que todas las ocurrencias JavaScript
en esta publicación de referencia (por Microsoft nuevamente) deben ser reemplazadas por ECMASCript
. En realidad, parecen tener cuidado al usar ECMAScript
solo en esta página de documentación más reciente y más técnica.
w3schools.com parece estar de acuerdo con las definiciones anteriores:
JavaScript fue inventado por Brendan Eich en 1995, y se convirtió en un estándar ECMA en 1997. ECMA-262 es el nombre oficial del estándar. ECMAScript es el nombre oficial del idioma.
La clave aquí es: el nombre oficial del idioma .
Si revisa las páginas de la versión JavaScript de Mozilla , encontrará la siguiente declaración:
Obsoleto. El control de versiones explícito y la aceptación de las características del lenguaje era específico de Mozilla y están en proceso de eliminación. Firefox 4 fue la última versión que se refería a una versión de JavaScript (1.8.5). Con los nuevos estándares ECMA, las características del lenguaje JavaScript ahora se mencionan a menudo con su definición inicial en las ediciones ECMA-262, como ECMAScript 2015.
y cuando vea las notas de la versión reciente, siempre verá referencias a los estándares ECMAScript, tales como:
Se ha implementado la propiedad Symbol.toStringTag ES2015 (error 1114580).
Se han implementado los métodos ES2015 TypedArray.prototype.toString () y TypedArray.prototype.toLocaleString () (error 1121938).
Mozilla Web Docs también tiene una página que explica la diferencia entre ECMAScript y JavaScript:
Sin embargo, el término general "JavaScript" tal como se entiende en un contexto de navegador web contiene varios elementos muy diferentes. Uno de ellos es el lenguaje central (ECMAScript), otro es la colección de las API web, incluido el DOM (Modelo de objetos de documento).
Conclusión
Según tengo entendido, la gente usa la palabra JavaScript de forma un tanto liberal para referirse a la especificación principal de ECMAScript.
Yo diría que todas las implementaciones de JavaScript modernas (o motores de JavaScript) son, de hecho, implementaciones de ECMAScript. Verifique la definición del motor V8 de Google, por ejemplo:
V8 es el motor de JavaScript de alto rendimiento de código abierto de Google, escrito en C ++ y utilizado en Google Chrome, el navegador de código abierto de Google y en Node.js, entre otros. Implementa ECMAScript como se especifica en ECMA-262.
Parecen usar la palabra JavaScript y ECMAScript indistintamente, y yo diría que en realidad es un motor ECMAScript.
Por lo tanto, la mayoría de los motores JavaScript están implementando el estándar ECMAScript, pero en lugar de llamarlos motores ECMAScript, se denominan motores JavaScript. Esta respuesta también apoya la forma en que veo la situación.
Dudo que alguna vez usemos la palabra "ECMAScript" si no fuera por el hecho de que el nombre "JavaScript" es propiedad de Sun. Para todos los efectos, el lenguaje es JavaScript. No vas a la librería buscando libros de ECMAScript, ¿verdad?
Es un poco demasiado simple decir que "JavaScript" es la implementación. JScript es la implementación de Microsoft.
JavaScript es una rama de lenguajes formados alrededor del estándar ECMAScript. Creo que ECMA es la Asociación Europea de Fabricantes de Computadoras, no es que esto sea realmente relevante ni nada.
No olvide que otro lenguaje popular formado alrededor del estándar ECMA Script es ActionScript, utilizado en Adobe Flash / Flex.