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 JavaScript
no presente pós referência (por Microsoft novamente) deve ser substituído por ECMASCript
. Na verdade, eles parecem ter cuidado ao usar ECMAScript
apenas 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.