Ir para o conteúdo principal
BiografiaHistória da informáticaIniciante

Brendan Eich: JavaScript, do protótipo da Netscape ao padrão da Web

Como Brendan Eich criou o primeiro JavaScript na Netscape e contribuiu para a sua evolução até se tornar a linguagem normalizada da Web.

Publicado 17 de agosto de 2026Atualizado 15 de setembro de 2026Leitura : 9 minPor Yann Bastien
Retrato de Brendan Eich, criador da primeira versão de JavaScript
Mostrar índice
  1. Antes da Netscape: um engenheiro de linguagens
  2. 1995: dar comportamento às páginas Web
  3. Scheme e Self por baixo de uma aparência familiar
  4. Quando as peculiaridades se tornam contratos de compatibilidade
  5. De JavaScript a ECMAScript
  6. Uma linguagem transformada por quem a utiliza
  7. Mozilla e a Web aberta
  8. Porque Brendan Eich continua importante na história da Web
  9. Cronologia
  10. Perguntas frequentes
  11. Brendan Eich criou realmente o JavaScript em dez dias?
  12. JavaScript é uma versão de Java?
  13. Qual é a diferença entre JavaScript e ECMAScript?
  14. Porque utiliza JavaScript protótipos?
  15. Brendan Eich criou o Node.js?
  16. Porque continuam a existir as antigas peculiaridades do JavaScript?

Brendan Eich está associado a uma das histórias mais conhecidas da programação: o JavaScript teria sido «criado em dez dias». A afirmação é correta quando se refere ao primeiro protótipo, desenvolvido na Netscape em maio de 1995. Torna-se enganadora se sugerir que a linguagem atual nasceu já completa nesse curto período. O JavaScript moderno resulta de três décadas de normalização, implementações concorrentes, correções e compromissos com uma das regras mais difíceis de contornar na Web: as páginas existentes devem continuar a funcionar.

A trajetória de Eich é interessante precisamente por causa desta tensão. Sob enorme pressão de tempo, concebeu uma linguagem fácil de incorporar numa página, mas combinou ideias de Scheme e Self por baixo de uma sintaxe familiar para programadores de C e Java. Uma necessidade comercial imediata acabou por dar origem à linguagem de programação nativa universal dos navegadores.

Antes da Netscape: um engenheiro de linguagens

Brendan Eich nasceu em Pittsburgh, em 1961. Estudou matemática e informática e concluiu, em 1986, um mestrado na University of Illinois Urbana-Champaign. Antes de entrar na Netscape, trabalhou, entre outras empresas, na Silicon Graphics e na MicroUnity, em compiladores e sistemas.

Este percurso é importante para compreender 1995. Eich não estava a improvisar sem referências: conhecia os compromissos entre desenho de linguagens, implementação e desempenho e tinha particular interesse por Scheme, um dialeto de Lisp no qual as funções ocupam um lugar central.

1995: dar comportamento às páginas Web

Em meados da década de 1990, a Web ainda era sobretudo um conjunto de documentos. O HTML descrevia uma página e o navegador apresentava-a; muitas interações exigiam um novo pedido ao servidor.

O Netscape Navigator era então um dos navegadores dominantes. A Netscape queria permitir aos autores acrescentar comportamento diretamente no navegador sem uma cadeia de desenvolvimento pesada. Em paralelo, colaborava com a Sun em torno de Java, orientado para aplicações mais estruturadas. A nova linguagem de scripting teria de ser mais leve, imediatamente utilizável a partir do HTML e dispensar uma compilação prévia.

Eich entrou na Netscape em abril de 1995. Em maio, construiu em cerca de dez dias o protótipo chamado Mocha. O trabalho prosseguiu antes do lançamento: a linguagem passou a chamar-se LiveScript e, no final de 1995, JavaScript, numa altura em que Java tinha enorme visibilidade comercial.

O nome provoca confusão desde então. JavaScript não é uma versão simplificada de Java. Os sistemas de tipos, os modelos de objetos e os ambientes de execução são diferentes. A semelhança mais visível resulta de uma sintaxe deliberadamente familiar, da família C: chavetas, operadores e estruturas de controlo.

Scheme e Self por baixo de uma aparência familiar

Sob essa superfície, o JavaScript trata as funções como valores de primeira classe. Podem ser guardadas em variáveis, passadas como argumentos ou devolvidas como resultado. Esta flexibilidade, familiar em Scheme, adapta-se particularmente bem a um navegador orientado por eventos, no qual uma função pode reagir a um clique, a uma introdução de dados ou à conclusão de uma operação.

Para os objetos, Eich inspirou-se em parte em Self. Em vez de fazer das classes o mecanismo fundamental, um objeto pode delegar a procura de propriedades noutro objeto através de uma cadeia de protótipos. A sintaxe class, acrescentada muito mais tarde, não substituiu este modelo: oferece uma forma mais familiar de trabalhar sobre ele.

O JavaScript adotou também tipagem dinâmica e numerosas conversões implícitas. Estas escolhas facilitavam a escrita rápida de pequenos scripts, mas também originavam comportamentos surpreendentes. Algumas das peculiaridades mais famosas da linguagem entendem-se melhor como resultado do compromisso inicial: o JavaScript tinha de ser acessível, expressivo e, sobretudo, ficar pronto muito depressa.

Eich desenvolveu simultaneamente o primeiro motor, antecessor do SpiderMonkey. Conceber em conjunto a sintaxe e a implementação acelerou a experimentação, mas deixou pouco tempo para rever certas decisões antes de páginas públicas começarem a depender delas.

Quando as peculiaridades se tornam contratos de compatibilidade

Na Web, um erro publicado é difícil de apagar. Quando milhares de sites dependem de determinado comportamento, alterá-lo de forma incompatível pode quebrá-los. Conversões implícitas, antigas regras de âmbito, o comportamento de this ou a coexistência de null e undefined fazem, por isso, parte de uma herança que o JavaScript moderno tem de gerir em vez de simplesmente eliminar.

Esta restrição explica tanto as arestas da linguagem como a sua extraordinária continuidade. Os padrões tendem a acrescentar mecanismos mais claros ou seguros sem retirar abruptamente os antigos.

É igualmente importante distinguir duas camadas: JavaScript não é o navegador. A linguagem define valores, funções, objetos e operações. API como o DOM, eventos, fetch ou armazenamento são fornecidas pelo ambiente Web. As incompatibilidades históricas podiam, portanto, resultar da linguagem ou das API do navegador que a rodeavam.

De JavaScript a ECMAScript

O sucesso da Netscape gerou rapidamente implementações concorrentes. A Microsoft introduziu JScript no Internet Explorer, enquanto os navegadores desenvolviam comportamentos e API próprios. Sem uma base comum, os autores de sites arriscavam-se a ter de escrever código diferente para navegadores diferentes.

Em 1996, a Netscape submeteu a linguagem à Ecma International. Em 1997 foi publicada a primeira edição da ECMA-262, sob o nome ECMAScript. Foi uma mudança decisiva: as regras centrais da linguagem deixaram de depender exclusivamente do navegador de um único fabricante.

JavaScript continuou a ser o nome histórico e corrente; ECMAScript é a especificação normalizada. Os navegadores implementam essa especificação e acrescentam depois as API próprias da Web.

A normalização não seguiu uma linha reta. O ambicioso projeto ECMAScript 4 encontrou, nos anos 2000, profundas divergências sobre a dimensão das alterações. O compromisso levou ao ECMAScript 5 em 2009. ECMAScript 2015 (ES6) representou depois um grande salto, com módulos, let e const, sintaxe de classes, funções arrow e muitas outras funcionalidades. A especificação passou posteriormente a evoluir num ciclo anual.

O fracasso do ES4 deixa uma lição importante: fazer evoluir uma linguagem omnipresente é tanto um problema de governação como de engenharia. É necessário melhorar a plataforma sem fragmentar as implementações nem abandonar milhares de milhões de linhas de código existente.

Uma linguagem transformada por quem a utiliza

A história posterior do JavaScript vai muito além de Eich. Durante os anos 2000, Ajax popularizou interfaces capazes de comunicar com o servidor sem recarregar páginas inteiras. Bibliotecas e, mais tarde, frameworks ajudaram a estruturar aplicações cada vez mais complexas.

A partir de 2008, motores como o V8 aumentaram drasticamente o desempenho através de compilação just-in-time e outras otimizações. Em 2009, Ryan Dahl criou o Node.js, utilizando V8 para executar JavaScript fora do navegador. A linguagem chegou assim aos servidores, às ferramentas de desenvolvimento e a ambientes que o projeto da Netscape de 1995 nunca tinha previsto.

Eich não criou o V8 nem o Node.js, nem desenhou pessoalmente as muitas funcionalidades acrescentadas posteriormente ao ECMAScript. O seu papel histórico foi criar o núcleo inicial e participar na sua primeira normalização. A plataforma moderna é uma construção coletiva de comités de padrões, equipas de motores, fabricantes de navegadores, autores de bibliotecas, programadores e utilizadores.

Mozilla e a Web aberta

Depois da aquisição da Netscape pela AOL, Eich tornou-se uma figura importante do projeto Mozilla, assumindo responsabilidades técnicas e de direção. O Firefox, lançado em 2004, ajudou a restabelecer uma forte concorrência entre navegadores e a promover padrões Web abertos.

Em 2014, Eich tornou-se por pouco tempo diretor executivo da Mozilla, antes de se demitir no contexto de uma controvérsia pública relacionada com uma doação política efetuada em 2008. O episódio faz parte da sua trajetória profissional, mas é distinto da avaliação técnica do seu papel no JavaScript.

Em 2015, cofundou a Brave Software, que desenvolve o navegador Brave, centrado, entre outros aspetos, na proteção contra rastreamento e numa abordagem diferente à publicidade online. O projeto prolonga o seu envolvimento com navegadores, mas é separado do desenho e da normalização do JavaScript.

Porque Brendan Eich continua importante na história da Web

O contributo duradouro de Eich não consiste em ter desenhado sozinho o JavaScript moderno. Consiste em ter dado ao navegador, num momento decisivo da expansão da Web, uma linguagem suficientemente acessível para se difundir de imediato e suficientemente expressiva para ultrapassar rapidamente os pequenos scripts a que parecia destinada.

As suas influências ajudam a explicar essa capacidade de adaptação: funções de primeira classe, objetos baseados em protótipos e comportamento dinâmico permitem estilos de programação muito diferentes. Os compromissos iniciais explicam também muitas das dificuldades da linguagem. As duas dimensões pertencem à mesma história.

Acima de tudo, o JavaScript mostra como uma linguagem distribuída na Web deixa rapidamente de pertencer ao seu criador. Torna-se um contrato coletivo entre uma especificação, vários motores, API, ferramentas e uma enorme quantidade de software existente. O seu sucesso depende tanto dessa continuidade como do desenho original.

Cronologia

  • 1961: Brendan Eich nasce em Pittsburgh.
  • 1986: conclui um mestrado na University of Illinois Urbana-Champaign.
  • Abril de 1995: entra na Netscape.
  • Maio de 1995: constrói o protótipo Mocha em cerca de dez dias.
  • 1995: Mocha passa a LiveScript e depois a JavaScript.
  • 1996: a Netscape submete a linguagem à Ecma International.
  • 1997: é publicada a primeira edição da ECMA-262.
  • 1998: Eich participa na criação do projeto Mozilla.
  • 2004: lançamento do Firefox.
  • 2009: ECMAScript 5; Ryan Dahl lança o Node.js.
  • 2014: breve mandato de Eich como diretor executivo da Mozilla.
  • 2015: ECMAScript 2015 e cofundação da Brave Software.
  • Hoje: o ECMAScript continua a evoluir e o JavaScript permanece a linguagem nativa universal dos navegadores Web.

Perguntas frequentes

Brendan Eich criou realmente o JavaScript em dez dias?

Criou o primeiro protótipo, Mocha, em cerca de dez dias em maio de 1995. A linguagem continuou a mudar antes do lançamento e evoluiu depois durante décadas através de padrões e diferentes implementações.

JavaScript é uma versão de Java?

Não. O nome e parte da sintaxe criam uma semelhança enganadora. O JavaScript tem tipagem dinâmica e baseia-se fundamentalmente em protótipos; Java foi concebido com outro modelo e outro ambiente de execução.

Qual é a diferença entre JavaScript e ECMAScript?

ECMAScript é a especificação padrão que define o núcleo da linguagem. JavaScript é o nome corrente das suas implementações. Num navegador, JavaScript funciona ainda com API Web como o DOM.

Porque utiliza JavaScript protótipos?

Eich inspirou-se em parte em Self. Os objetos podem delegar a procura de propriedades noutros objetos. A sintaxe moderna de classes não substitui este mecanismo: é construída sobre ele.

Brendan Eich criou o Node.js?

Não. Ryan Dahl criou o Node.js em 2009 utilizando o motor V8. A sua importância mostra até que ponto o JavaScript ultrapassou a função originalmente prevista nas páginas Web.

Porque continuam a existir as antigas peculiaridades do JavaScript?

Porque a compatibilidade retroativa é uma restrição fundamental da Web. Remover ou alterar um comportamento antigo poderia quebrar sites que continuam online, pelo que a linguagem tende a evoluir acrescentando alternativas melhores enquanto conserva grande parte do seu passado.

Este artigo foi útil?

Fontes e referências

  1. 1.Allen Wirfs-Brock e Brendan Eich - JavaScript: The First 20 Years
  2. 2.Ecma International - ECMAScript Language Specification
  3. 3.Mozilla - A re-introduction to JavaScript
  4. 4.Computer History Museum - Brendan Eich oral history

Coleção

Linguagens de programação

12 / 26

  1. 01Grace Hopper: dos primeiros compiladores ao COBOL
  2. 02John Backus: FORTRAN, a notação BNF e a recusa do código de máquina
  3. 03Dennis Ritchie: a linguagem C no coração do Unix
  4. 04FORTRAN: provar que um compilador pode competir com assembly
  5. 05A linguagem C: tornar os sistemas portáteis sem esconder a máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, conceber pela simplicidade
  7. 07Bjarne Stroustrup: conceber C++ sem abdicar do desempenho
  8. 08Pascal: aprender a programar tornando a estrutura visível
  9. 09C++: de C with Classes ao C++ moderno
  10. 10Programação orientada a objetos: objetos, mensagens e abstrações reutilizáveis
  11. 11Guido van Rossum: criar Python para tornar o código legível
  12. 12Brendan Eich: JavaScript, do protótipo da Netscape ao padrão da Web
  13. 13James Gosling: o engenheiro na origem de Java
  14. 14Python: legibilidade, baterias incluídas e um ecossistema global
  15. 15Java: escrever uma vez, executar em qualquer lugar
  16. 16JavaScript: a linguagem que tornou a Web interativa
  17. 17Ken Thompson: de Unix a Go, a simplicidade como método
  18. 18John McCarthy: Lisp e a ideia de programar com símbolos
  19. 19Alan Kay: Smalltalk e o computador como meio pessoal
  20. 20Barbara Liskov: a abstração que tornou o software modular
  21. 21Robin Milner: ML, prova assistida e linguagens da interação
  22. 22Brian Kernighan: AWK, Unix e a arte de explicar código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, a linguagem que ligou as ferramentas da Internet
  25. 25Yukihiro Matsumoto: Ruby e a felicidade do programador
  26. 26Rasmus Lerdorf: PHP e a democratização da Web dinâmica
HistóriaHistória da informáticaIniciante

JavaScript: a linguagem que tornou a Web interativa

Do protótipo da Netscape ao ECMAScript, Ajax, Node.js e TypeScript: como o JavaScript se tornou a plataforma universal de programação da Web.

17 de agosto de 20267 min
BiografiaHistória da informáticaIniciante

Dennis Ritchie: a linguagem C no coração do Unix

Como Dennis Ritchie concebeu a linguagem C e contribuiu para o Unix, duas bases que tornaram o software de sistema mais portável.

3 de agosto de 20267 min