Javascript

Qual a diferença entre ECMAScript e JavaScript?

Conheça a história e as curiosidades por trás da criação do ECMAScript e JavaScript. Entenda de uma vez por todas a diferença entre ECMAScript e JavaScript.

há 3 anos 6 meses

Formação Desenvolvedor JavaScript
Conheça a formação em detalhes

Olá Web Developers! Se você estuda JavaScript, deve ter em algum momento se deparado com o termo ECMAScript. Será que eles são a mesma coisa? Por quê temos esses dois nomes tão diferentes? Nesse post vamos entender qual a diferença entre ECMAScript e JavaScript.

A Criação do Nome JavaScript

A fim de entender a diferença entre ECMAScript e JavaScript, precisamos entender brevemente como o JavaScript foi criado.

Assim que a Internet foi liberada comercialmente para todos, no começo dos anos 1990, a Netscape surgiu com seu navegador Netscape Navigator. Havia sempre o lançamento de novas funcionalidades. A fim de permitir interação com o usuário na web (e principalmente permitir validação de formulários), a Netscape resolveu criar uma linguagem de programação que ficaria embutida no navegador.

Assim surgiu a ideia da linguagem Mocha (nome de um tipo de café). Logo em seguida esse nome foi trocado para LiveScript. Ao mesmo tempo uma nova linguagem estava fazendo muito sucesso, o Java. Isso porque na época era comum a necessidade de escrever um código para cada sistema operacional, e com o Java podíamos programar uma única vez e executar nosso código em qualquer lugar.

Com a finalidade de aproveitar carona na fama, a Netscape resolveu mudar o nome da sua linguagem para JavaScript. Claro que isso foi com aprovação da Sun Microsystems, sua parceira contra a Microsoft e seu recém lançado Internet Explorer. E isso pode causar confusão em muitos iniciantes até hoje, pois é comum pensar que as duas linguagens possuem alguma relação. O JavaScript fez sua primeira aparição no Netscape Navigator 2.0, em 1995.

Em resumo, esse nome foi apenas uma jogada de marketing.

Uma outra curiosidade é que o nome Java vem da Ilha de Java, principal ilha da Indonésia. O café que ela produzia era tão famoso mundialmente entre os séculos XIX e XX que até hoje a palavra “Java” é sinônimo de café em alguns países.

JavaScript Básico
Curso JavaScript Básico
Conhecer o curso

Oracle, a dona da marca JavaScript

Quem criou a linguagem Java foi a Sun Microsystems. A empresa registrou essa marca e outras palavras relacionadas. Entre elas estava o nome JavaScript.

Na época a Microsoft também resolveu adicionar uma linguagem ao seu navegador. Ela fez engenharia reversa no interpretador de JavaScript. A fim de evitar problemas com a Sun, a Microsoft chamou sua linguagem de JScript.

Em 2009 a Oracle comprou a Sun Microsystems. Como resultado, a Oracle passou a ser dona da marca JavaScript. Você pode ver todas as informações sobre o registro sobre o nome JavaScript aqui. Conforme essas informações, os direitos sobre o nome JavaScript continuam sendo renovados até hoje pela Oracle.

Isso até causou um problema em 2018 na App Store, quando um desenvolvedor lançou um aplicativo que possuía a palavra JavaScript. Em seu post no reddit, o desenvolvedor publicou a mensagem que recebeu da Apple:

“Como você provavelmente sabe, a Oracle possui o registro de marca registrada dos EUA nº 2416017 para JAVASCRIPT. O vendedor deste aplicativo do iTunes exibe JAVASCRIPT de forma proeminente sem a autorização de nosso cliente. A exibição não autorizada da propriedade intelectual de nosso cliente pode fazer com que os consumidores encontrem este aplicativo e acreditem erroneamente que é proveniente de ou fornecido sob licença da Oracle. O uso da marca registrada de nosso cliente de tal forma constitui violação de marca registrada em violação da Lei Lanham. 15 USC § 1125 (a) (1) (A). Para evitar mais confusão por parte do consumidor e violação dos direitos de propriedade intelectual de nosso cliente, solicitamos que você desative imediatamente o acesso a este aplicativo. Aguardamos sua confirmação de que atendeu a essa solicitação.”

Você pode ver a mensagem original no link: https://www.reddit.com/r/javascript/comments/8d0bg2/oracle_owns_javascript_so_apple_is_taking_down_my/

JavaScript Básico
Curso JavaScript Básico
Conhecer o curso

JavaScript não possui logo

Outra curiosidade é que nem a Sun e nem a Oracle criaram um logo para o JavaScript. E como essa marca pertence à Oracle, ninguém além dela pode fazer isso.

Logos não oficiais do JavaScript

Os logos que vemos por aí representando o JavaScript não são oficiais, foram criados pela comunidade. Oficialmente, JavaScript não possui logo. O primeiro logo da imagem acima é o mais usado, e foi apresentado em uma conferência de JavaScript em 2011, a JSConf EU.

Note que a maioria desses logos (com excessão do segundo) utilizam apenas as letras “JS”. Isso não é apenas para o logo ficar mais minimalista. O objetivo é evitar o uso da palavra “JavaScript”, que poderia causar problemas com os direitos de marca que a Oracle possui.

A Padronização do ECMAScript

Imagine o caos que seria cada navegador com sua própria linguagem. A ideia da web é funcionar igual para todos. A fim de manter um padrão, em novembro de 1996 a Netscape enviou o JavaScript à ECMA International, uma associação fundada em 1961 que padroniza sistemas de informação. A saber, seu nome significa European Computer Manufacturers Association (Associação Europeia de Fabricantes de Computadores).

Já que o nome JavaScript pertencia à Sun, foi preciso registrar com um novo nome. Assim surgiu o nome ECMAScript. Porém, como o nome JavaScript já estava famoso, continuamos chamando a linguagem assim até hoje em todos os lugares.

Portanto, com essa padronização, todos os criadores de navegadores devem seguir regras que indicam como o ECMAScript (ou JavaScript) deve funcionar. Assim o seu código vai poder funcionar igual em qualquer lugar.

Já mostrei aqui no blog a explicação das partes estranhas do JavaScript. Se você não entende a razão de algo ocorrer no seu código, você pode ler as regras do ECMAScript que os navegadores devem seguir nesse endereço: https://www.ecma-international.org/ecma-262/11.0/index.html#title.

Além disso, você também pode usar a especificação de uma linguagem como base para criar a sua própria linguagem de programação. Foi o que aconteceu com o ActionScript da Adobe e UnityScript da Unity.

A especificação do ECMAScript está no registro ECMA-262. A especificação da linguagem C# também está lá, como ECMA-334. Você pode vê-la pelo endereço: http://www.ecma-international.org/publications/standards/Ecma-334.htm

Versões do ECMAScript

O ECMAScript continua em evolução. Sempre que novas funcionalidades são adicionadas, o documento do registro ECMA-262 é atualizado. Antes o nome das versões eram seguidos por um número, como ECMAScript 3 e ECMAScript 5.

Em 2015, durante o lançamento do que seria o ECMAScript 6, também conhecido como ES6, foi decidido que o nome das versões agora viriam com o número do ano de seu lançamento. Por isso que o ES6 também ficou conhecido como ECMAScript 2015 (ou ES2015).

Então é muito comum que ao fazer referência à linguagem, chamamos de JavaScript. Mas ao se referir a uma versão, chamamos de ECMA ou ES + ano.

Desenvolvedor Especialista Front-end
Formação Desenvolvedor Especialista Front-end
Conhecer a formação

Então, qual a diferença entre ECMAScript e JavaScript?

Há pessoas que defendem que estamos atualmente utilizando ECMAScript, e que o nome JavaScript é usado apenas por costume, já que esse nome pertence à Oracle. Em contrapartida há pessoas que dizem que é tudo a mesma coisa.

Se formos definir que há uma diferença, poderíamos dizer que o ECMAScript é a especificação, e que JavaScript é uma implementação por parte dos navegadores, assim como o ActionScript pela Adobe, UnityScript pela Unity e JScript pela Microsoft.

Em resumo, é como se o ECMAScript fosse a receita de um bolo e o JavaScript fosse o bolo de verdade, em sua forma mais pura e fiel à receita original. ActionScript, UnityScript e JScript seriam os “outros sabores”.

Autor(a) do artigo

Akira Hanashiro
Akira Hanashiro

Graduado em Análise e Desenvolvimento de Sistemas, Pós-graduado em Projetos e Desenvolvimento de Aplicações Web e MBA em Machine Learning. Especializado em Front End e curte desenvolvimento de jogos.

Todos os artigos

Artigos relacionados Ver todos