Respostas:
ECMAScript é a linguagem, enquanto JavaScript, JScript e até o ActionScript 3 são chamados de "dialetos". A Wikipedia lança alguma luz sobre isso.
Eu acho que uma pequena lição de história está prevista.
O JavaScript foi originalmente chamado Mocha e alterado para Livescript, mas acabou se tornando JavaScript.
É importante observar que o JavaScript veio antes do ECMAscript e o histórico informará o motivo.
Para começar do início, o JavaScript derivou seu nome de Java e, inicialmente, foi solicitado a Brendan Eich (o criador do JS) que desenvolvesse uma linguagem que se assemelhasse a Java para a Web do Netscape.
Eich, no entanto, decidiu que o Java era muito complicado com todas as suas regras e decidiu criar uma linguagem mais simples que até um iniciante poderia codificar. Isso é evidente em coisas como o relaxamento da necessidade de um ponto e vírgula.
Depois que a linguagem foi concluída, a equipe de marketing da Netscape solicitou à Sun que lhes permitisse chamá-la de JavaScript como um truque de marketing e, portanto, por que a maioria das pessoas que nunca usou o JavaScript acha que isso está relacionado ao Java.
Cerca de um ano ou dois após o lançamento do JavaScript no navegador, o IE da Microsoft adotou a linguagem e começou a fazer suas próprias implementações, como o JScript. Ao mesmo tempo, o IE estava dominando o mercado e pouco tempo depois a Netscape teve que fechar seu projeto.
Antes de o Netscape cair, eles decidiram iniciar um padrão que guiaria o caminho do JavaScript, chamado ECMAScript.
O ECMAScript teve alguns lançamentos e, em 1999, eles lançaram sua última versão (ECMAScript 3) antes de entrar em hibernação pelos próximos 10 anos. Durante esses 10 anos, a Microsoft dominou as cenas, mas ao mesmo tempo não estava melhorando seu produto e, portanto, o Firefox nasceu (liderado por Eich) e vários outros navegadores, como Chrome, Opera.
O ECMAScript lançou sua 5ª edição em 2009 (a 4ª edição foi abandonada) com recursos como o modo estrito. Desde então, o ECMAScript ganhou muito ímpeto e está programado para lançar sua 6ª edição dentro de alguns meses, com as maiores mudanças até agora.
Você pode usar uma lista de recursos do ECMAScript 6 aqui http://kangax.github.io/es5-compat-table/es6/ e também o suporte ao navegador. Você pode até começar a escrever o Ecmascript 6 como no CoffeeScript e usar um compilador para compilar o Ecmascript 5.
Se ECMAScript é a linguagem e JavaScript é um dialeto é discutível, mas não importante. Se você continuar pensando assim, pode confundir você. Não existe nenhum compilador que execute o ECMAScript, e acredito que o JavaScript seja considerado a linguagem que implementa um padrão chamado ECMAScript.
Também existem outras linguagens perceptíveis que implementam o ECMAScript, como o ActionScript (usado para Flash)
ECMAScript = ES:
ECMAScript é um padrão para linguagens de script.
Idiomas como Javascript são baseados no padrão ECMAScript.
O ECMA Standard é baseado em várias tecnologias de origem, sendo as mais conhecidas JavaScript (Netscape) e JScript (Microsoft).
ECMA significa Associação Europeia de Fabricantes de Computadores
JavaScript = JS:
JavaScript é a implementação mais popular do ECMAScript Standard.
Os principais recursos do Javascript são baseados no padrão ECMAScript, mas o Javascript também possui outros recursos adicionais que não estão nas especificações / padrão do ECMA.
ActionScript e JScript são outras linguagens que implementam o ECMAScript.
O JavaScript foi enviado à ECMA para padronização, mas devido a problemas de marca registrada com o nome Javascript, o padrão passou a se chamar ECMAScript.
Todo navegador tem um intérprete de JavaScript.
ES5 = ECMAScript 5:
ES5 é uma versão do ECMAScript (antiga / atual).
ES5 é o JavaScript que você conhece e usa no navegador hoje.
O ES5 não requer uma etapa de construção (transpilers) para transformá-lo em algo que será executado nos navegadores de hoje.
O ECMAScript versão 5 foi concluído em dezembro de 2009, as versões mais recentes de todos os principais navegadores (Chrome, Safari, Firefox e IE) implementaram a versão 5.
A versão 5.1 foi concluída em junho de 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 é uma versão do ECMAScript (nova / futura).
Oficialmente, o nome ES2015 deve ser usado em vez de ES6.
O ES6 abordará muitas das principais deficiências da linguagem abordadas no TypeScript e CoffeeScript.
O ES6 é a próxima iteração do JavaScript, mas não é executado nos navegadores de hoje.
Existem alguns transpilers que exportam o ES5 para execução em navegadores.
BabelJS:
O BabelJS é o transpilador mais popular que transforma o novo JavaScript ES6 em JavaScript antigo ES5.
O BabelJS torna possível escrever a próxima geração de JavaScript hoje (significa ES2015).
O BabelJS simplesmente pega o arquivo ES2015 e o transforma em arquivo ES5.
As versões atuais dos navegadores agora podem entender o novo código JavaScript (ES2015), mesmo se ainda não o suportar.
TypeScript e CoffeeScript:
Ambos fornecem açúcar sintático sobre o ES5 e, em seguida, são compilados em JavaScript compatível com o ES5.
Você escreve TypeScript ou CoffeeScript e o transpiler o transforma em JavaScript ES5.
JavaScript = ECMAScript + DOM + BOM ;
A especificação de idioma do ECMAScript® define toda a lógica para criar e editar objetos, matrizes, números, etc ...
DOM ( D ocument O bject M odelo) torna possível comunicar com documentos de HTML / XML (por exemplo document.getElementById('id');).
BOM ( B linhaser O bject M odelo) representa a hierarquia de objectos navegador (por exemplo, objecto localização, objecto historial, elementos de forma).
Histórico de nomeação de JavaScript:
Mocha ► LiveScript ► JavaScript ► (parte do JS resultou em) ECMA-262 ► ECMAScript ► JavaScript (consiste em ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;?
JavaScript = ECMAScript + DOM API;baseia-se apenas nos termos documentados acordados em geral nos quais o JavaScript consiste.
Tecnicamente, o ECMAScript é a linguagem que todos estão usando e implementando - é a especificação criada há muitos anos quando a Netscape e a Microsoft se sentaram e tentaram padronizar os scripts entre JavaScript (linguagem de script da Netscape) e JScript (Microsoft).
Posteriormente, todos esses mecanismos estão implementando ostensivamente o ECMAScript, no entanto, o JavaScript (o nome) agora permanece por ambos os motivos tradicionais de nomeação e como um termo de marketing da Mozilla para suas várias extensões não-padrão (que eles querem realmente "versão" )
O que é o ECMAScript, ou seja, ES?
ECMAScript é um padrão para uma linguagem de script e a linguagem Javascript é baseada no padrão ECMAScript.
Javascript é exatamente o mesmo que ECMAScript?
JavaScript = ECMAScript + API DOM;
API do DOM como: document.getElementById('id');
Outros idiomas usam o padrão ECMAScript?
Por que é chamado ECMAScript?
Eu sei que este é um post antigo, mas espero que isso ajude alguém.
Nos anos 90, diferentes versões do js começaram a sair como javascript do netscape, script Js da Microsoft. Então, o ecmascript foi introduzido como padrão. Mas o ecmascript forma apenas uma parte do javascript que especifica sua sintaxe principal, tipos, objetos etc. Provavelmente isso explica as implementações inconsistentes do javascript no diff. navegadores
Reference - Wrox (Javascript profissional para desenvolvedores web)
JavaScript é uma linguagem ECMAScript.
O ECMAScript não é necessariamente JavaScript.
As respostas existentes parafrasearam bem o ponto principal.
O ponto principal é que o ECMAScript é a linguagem abstrata, sem extensões específicas de domínio, é inútil em si. A especificação define apenas a linguagem e os objetos principais dela.
Enquanto o JavaScript, o ActionScript e outros dialetos adicionam a biblioteca específica do domínio, você pode usá-la para algo significativo.
Existem muitos mecanismos ECMAScript , alguns deles são de código aberto, outros são proprietários. Você pode vinculá-los ao seu programa e adicionar suas funções nativas ao objeto global para que seu programa se torne programável. Embora na maioria das vezes eles sejam usados em navegadores.
Javascript era o nome original, destinado a capitalizar a popularidade do java. A ECMA é o órgão de padrões que supervisiona o padrão que acabou sendo posto em prática, portanto os nomes são aproximadamente equivalentes.
As implementações têm outros nomes, como V8 ou Rhino, etc.
ECMAScript é um padrão para JavaScrip t, veja estas instruções do MDN :
JavaScript (JS) é uma linguagem de programação leve, interpretada ou compilada por JIT, com funções de primeira classe. Embora seja mais conhecida como a linguagem de script para páginas da Web, muitos ambientes que não são de navegador também a usam, como node.js, Apache CouchDB e Adobe Acrobat. JavaScript é uma linguagem dinâmica baseada em protótipos, com vários paradigmas, que suporta estilos orientados a objetos, imperativos e declarativos (por exemplo, programação funcional). Leia mais sobre JavaScript.
O padrão para JavaScript é ECMAScript . A partir de 2012, todos os navegadores modernos suportam totalmente o ECMAScript 5.1. Navegadores mais antigos oferecem suporte a pelo menos ECMAScript 3. Em 17 de junho de 2015, a ECMA International publicou a sexta versão principal do ECMAScript, oficialmente denominada ECMAScript 2015, e foi inicialmente denominada ECMAScript 6 ou ES6. Desde então, os padrões ECMAScript estão em ciclos de lançamento anuais. Esta documentação refere-se à versão de rascunho mais recente, atualmente no ECMAScript 2018.
Para mais informações, visite aqui
Aqui estão minhas descobertas:
JavaScript: O Guia Definitivo , escrito por David Flanagan, fornece uma explicação muito concisa:
JavaScript foi criado na Netscape nos primeiros dias da Web e, tecnicamente, "JavaScript" é uma marca comercial licenciada da Sun Microsystems (agora Oracle) usada para descrever a implementação da linguagem pelo Netscape (agora Mozilla). A Netscape enviou o idioma para padronização à ECMA e, devido a problemas de marcas registradas, a versão padronizada do idioma ficou com o nome estranho "ECMAScript". Pelas mesmas razões de marca registrada, a versão da linguagem da Microsoft é formalmente conhecida como "JScript". Na prática, quase todo mundo chama a linguagem JavaScript.
Um post da Microsoft parece concordar com o que Flanagan explica dizendo:
ECMAScript é o nome oficial da linguagem JavaScript que todos conhecemos e amamos.
.. o que me faz pensar que todas as ocorrências JavaScriptno presente pós referência (por Microsoft novamente) deve ser substituído por ECMASCript. Na verdade, eles parecem ter cuidado ao usar ECMAScriptapenas nesta página de documentação mais recente e mais técnica.
O w3schools.com parece concordar com as definições acima:
O JavaScript foi inventado por Brendan Eich em 1995 e tornou-se um padrão da ECMA em 1997. ECMA-262 é o nome oficial do padrão. ECMAScript é o nome oficial do idioma.
A chave aqui é: o nome oficial do idioma .
Se você verificar as páginas da versão JavaScript do Mozilla , encontrará a seguinte declaração:
Descontinuada. O controle de versão explícito e a inclusão de recursos de idioma eram específicos do Mozilla e estão sendo removidos. O Firefox 4 foi a última versão que se referiu a uma versão JavaScript (1.8.5). Com os novos padrões ECMA, os recursos da linguagem JavaScript agora são frequentemente mencionados com sua definição inicial nas Edições ECMA-262, como ECMAScript 2015.
e quando vir as notas de versão recentes, sempre verá referências aos padrões do ECMAScript, como:
A propriedade ES2015 Symbol.toStringTag foi implementada (bug 1114580).
Os métodos ES2015 TypedArray.prototype.toString () e TypedArray.prototype.toLocaleString () foram implementados (bug 1121938).
O Mozilla Web Docs também possui uma página que explica a diferença entre ECMAScript e JavaScript:
No entanto, o termo geral "JavaScript", conforme entendido em um contexto de navegador da Web, contém vários elementos muito diferentes. Um deles é a linguagem principal (ECMAScript), outro é a coleção de APIs da Web, incluindo o DOM (Document Object Model).
Conclusão
No meu entender, as pessoas usam a palavra JavaScript de maneira um tanto liberal para se referir à especificação central do ECMAScript.
Eu diria que todas as implementações modernas de JavaScript (ou JavaScript Engines) são, de fato, implementações de ECMAScript. Verifique a definição do mecanismo V8 do Google, por exemplo:
O V8 é o mecanismo JavaScript de alto desempenho e código-fonte aberto do Google, escrito em C ++ e usado no Google Chrome, o navegador de código aberto do Google e no Node.js, entre outros. Ele implementa o ECMAScript conforme especificado em ECMA-262.
Eles parecem usar a palavra JavaScript e ECMAScript de forma intercambiável, e eu diria que é realmente um mecanismo ECMAScript?
Portanto, a maioria dos mecanismos JavaScript está realmente implementando o padrão ECMAScript, mas, em vez de chamá-los de mecanismos ECMAScript, eles se denominam mecanismos JavaScript. Esta resposta também suporta o modo como vejo a situação.
Duvido que alguma vez usássemos a palavra "ECMAScript" se não fosse pelo fato de o nome "JavaScript" pertencer à Sun. Para todos os efeitos, o idioma é JavaScript. Você não vai à livraria procurando livros ECMAScript, não é?
É um pouco simples dizer que "JavaScript" é a implementação. JScript é a implementação da Microsoft.
JavaScript é um ramo de idiomas formado em torno do padrão ECMAScript. Acredito que a ECMA é a Associação Europeia de Fabricantes de Computadores, não que isso seja realmente relevante ou algo assim.
Não esqueça que outra linguagem popular formada em torno do padrão ECMA Script é o ActionScript, usado no Adobe Flash / Flex.