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.
Curso JavaScript Básico
Conhecer o cursoOracle, 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/
Curso JavaScript Avançado
Conhecer o cursoJavaScript 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.
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.
Formação Desenvolvedor Front-end
Conhecer a formaçãoEntã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”.