JavaScript: O nascimento

Atualmente, é impossível imaginar a Internet sem a existência do JavaScript. Hoje praticamente todas as páginas executam código JavaScript.

Mas afinal como ele surgiu ?

Origem

O JavaScript surgiu na década de 90 por Brendan Eich que prestava serviços a Netscape.

Essa década foi um periodo de grandes mudanças, pois os browsers ainda eram estáticos. O navegador mais famoso na época era o Mosaic da NCSA.

NCSA Mosaic

 

E assim nasce a Netscape em 1994 com o intuito de explorar esse novo universo, a Web. Pouco tempo depois, é criado o Netscape Navigator e BUMMM! domina o mercado. Muitos devs da NCSA acabaram indo para esse novo e promissor projeto.

      Netscape Navigator

 

Logo, a Netscape chega à conclusão que a web deveria ser mais dinâmica, pois o Navigator sempre precisava fazer uma requisição ao servidor para obter qualquer resposta no navegador. E é aí que Brendan Eich entra nessa história, quando a Netscape o contrata para criar uma linguagem que realizasse esse novo desejo de uma web dinâmica.

A proposta inicial era a implementação da linguagem Scheme, baseada em LISP, puramente funcional, no Navigator. Porém a Netscape tinha projetos anteriores em conjunto com a Sun Microsystems para colocar sua mais recente e promissora linguagem de programação, o Java, no Navigator. Houve várias discussões internas sobre em qual linguagem Eich deveria se basear. Então Brendan cria o primeiro protótipo de JavaScript nomeado como Mocha, que vinha com uma sintaxe parecida com o Java, com valores primitivos e objetos. O Mocha logo de cara também sobreu uma influência funcional do Scheme e pouco tempo depois de outras linguagens como Self(protótipos), Perl(expressões regulares) e Python(strings, arrays).

A linguagem é renomeada para LiveScript por questões relacionadas a patentes. E em novembro de 1995, sai uma nova versão do Navigator com o LiveScript(aquela versão feita em dez dias, exato!). E em Dezembro do mesmo ano é renomeada para JavaScript. O nome JavaScript já era patenteado pela Sun Microsystems(Oracle), mas a Sun liberou o uso do nome afim de se unir a Netscape e destruir a temida Microsoft MUAHAHA.

ECMA

Logo após a criação do LiveScript, a Microsoft “CRIOU”, uma linguagem idêntica para o Internet Explorer 3 o JScript. Para conter essa nova “CRIAÇÃO” da Microsoft, a Netscape decide normatizar a linguagem com a companhia ECMA International, especializada em padrões e normativas. Assim começam os trabalhos na normativa ECMA-262.

A Netscape tinha um certo medo do rumo que o mercado estava tomando então toma uma atitude para obter total controle: cria uma nova patente e com a composição de ECMA + JavaScript nasce o ECMAScript. Porém, até hoje a linguagem é conhecida por JavaScript. O ECMAScript é utilizado para referenciar as versões da linguagem.

A ECMA-262 é mantida por um comitê composto por especialistas de grandes empresas como Microsoft, Mozilla e Google. E obviamente entre o comitê está Brendan Eich.

Histórico das versões

ECMAScript 1: A versão de dez dias.

ECMAScript 2: Mudanças editoriais para alinhar a ECMA-262 com o padrão ISO/IEC 16262.

ECMAScript 3: do-while, expressões regulares, métodos para objeto string etc.

ECMAScript 4: Foi criada uma nova versão para JavaScript porém foi rejeitada pois a quantidade de novas funcionalidades tornaria da migração entra as versões incompatível.

ECMAScript 5: getters e setters, ‘use sctrict’, métodos para arrays, suporte a JSON etc.

ECMAScript 6(2015): Sintaxe mais enxuta, arrow function, binary data, arrays tipados, coleções (maps, sets), promises, reflection etc.

ECMAScript 7(2016): adiciona algumas features como operadores exponenciais, Array.prototype.includes etc.

Alguns browsers ainda não dão suporte total às versões 6 e 7. Porém existem ferramentas que possibilitam traspilar as novas versões para a versão 5 através de libs como, por exemplo, Babel.

Referências

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>