Há trinta anos, um programador da Netscape criou a primeira versão de uma das linguagens mais utilizadas na internet atualmente em apenas 10 dias

Se os sites são interativos hoje, é graças a esse programador

Há trinta anos, um programador da Netscape criou a primeira versão de uma das linguagens mais utilizadas na internet atualmente em apenas 10 dias.
Sem comentários Facebook Twitter Flipboard E-mail
fabricio-mainenti

Fabrício Mainenti

Redator

Há três décadas, em maio de 1995, um jovem engenheiro chamado Brendan Eich, recém-contratado pela Netscape Communications, isolou-se por dez dias frenéticos para construir um protótipo funcional de uma nova linguagem de programação projetada para trazer interatividade às páginas da web.

Mas esse mero experimento improvisado (um "truque", como ele o chamaria mais tarde) acabaria se tornando o motor da web moderna, uma ferramenta onipresente usada por quase todos os sites hoje em dia.

Quando a web ainda era estática

Em 1995, a World Wide Web estava em um momento crucial: a navegação era essencialmente passiva; os usuários liam textos, visualizavam imagens estáticas e seguiam links. A Netscape, criadora do então revolucionário Netscape Navigator (o ancestral tanto do Mozilla Firefox, quanto do Mozilla Thunderbird), viu um enorme potencial na possibilidade de transformar essas páginas estáticas em ambientes dinâmicos e interativos.

Seu objetivo era criar uma linguagem simples, acessível a designers e profissionais, sem a necessidade de amplo treinamento em programação. Era essencial que o programa fosse executado dentro do navegador, sem a necessidade de compilação complexa e sem exigir conhecimento de linguagens tradicionais como C ou Java.

Dez dias que mudaram a internet

Eich havia sido contratado para trabalhar com Scheme — uma linguagem funcional, elegante, mas pouco conhecida — embora a gerência da Netscape tivesse outros planos: eles queriam algo que "parecesse" com Java, a linguagem da moda na época. Então, nosso programador combinou diversas influências:

  • A sintaxe: parênteses, ponto e vírgula, laços if e while, funções declaradas com uma estética familiar… tudo inspirado em Java para satisfazer a equipe de gestão;
  • A semântica: herdada de Scheme, uma linguagem que Eich admirava. É daí que vêm as funções de primeira classe, closures, a flexibilidade para manipular funções como dados e uma maneira de avaliar expressões muito diferente de Java ou C;
  • O modelo de objetos baseado em protótipos: retirado de Self. Assim, em vez de adotar a herança de classes clássicas (como em Java), Eich incorporou a abordagem de protótipos, onde os objetos são criados a partir de outros objetos. Em 1995, essa ideia era vista como exótica e até estranha por muitos programadores com formação em linguagens tradicionais.

O resultado foi um híbrido surpreendente: leve, flexível e intuitivo o suficiente para ser adotado por criadores de conteúdo web sem treinamento técnico avançado. Aquele primeiro protótipo não era uma linguagem completa, mas uma prova de conceito interna... mas funcionou, e isso foi o suficiente para a Netscape apostar tudo. E foi assim que o JavaScript nasceu.

A evolução desse protótipo continuaria por mais de um ano até seu lançamento público, em setembro de 1995, e a versão 1.0, em março de 1996. Naquela época, a Netscape e a Sun Microsystems anunciaram conjuntamente a linguagem e garantiram o apoio de 28 grandes empresas de tecnologia.

Paradoxalmente, o JavaScript acabou sobrevivendo a muitas dessas empresas — como a Silicon Graphics, a Digital Equipment Corporation e a própria Netscape.

A pressa deixa suas marcas

O desenvolvimento acelerado deixou um legado peculiar: suas inconsistências, ainda famosas entre os programadores. Acontece que o JavaScript foi projetado para ser tolerante: se o usuário cometesse um erro, o ideal seria que a página continuasse funcionando.

E essa filosofia levou, por exemplo, à implementação de um sistema de coerção de tipos extremamente flexível — e às vezes imprevisível. Exemplos famosos:

  • [] + [] produz "" (uma string vazia);
  • [] + {} produz "[object Object]";
  • {} + [] produz 0 em alguns contextos;
  • "5" - 2 resulta em 3, mas "5" + 2 resulta em "52".

Esses comportamentos se devem a regras de conversão criadas rapidamente para tornar strings, números e objetos compatíveis sem interromper o fluxo do usuário, mas sem um projeto coerente a longo prazo. No entanto, essas imperfeições não impediram seu sucesso.

A 'Era do JavaScript'

Hoje, o JavaScript é muito mais do que uma linguagem de navegador. Seus descendentes e ecossistemas relacionados se expandiram para praticamente todas as áreas:

  • Quase 99% dos sites usam JavaScript no lado do cliente;
  • Com o Node.js, também se tornou uma linguagem do lado do servidor;
  • Frameworks como React, Angular e Vue dominam o desenvolvimento frontend;
  • É usado em aplicativos móveis, aplicativos desktop, videogames e até mesmo dispositivos embarcados.

Em todas as pesquisas de uso e popularidade, o JavaScript continua liderando como uma das linguagens mais utilizadas no mundo.

Imagem de capa | Marcos Merino usando IA

Inicio