Ir para o conteúdo principal
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.

Publicado 17 de agosto de 2026Atualizado 15 de setembro de 2026Leitura : 7 minPor Yann Bastien
JavaScript: a linguagem que tornou a Web interativa
Mostrar índice
  1. 1995: tornar o navegador programável
  2. Um modelo pouco habitual sob uma sintaxe familiar
  3. JavaScript não é o navegador
  4. A guerra dos navegadores e a necessidade de um padrão
  5. A retrocompatibilidade torna-se uma regra da Web
  6. ECMAScript 4: aprender a evoluir sem uma rutura
  7. Ajax e jQuery: JavaScript alimenta aplicações Web
  8. A corrida dos motores JavaScript
  9. Node.js: sair do navegador
  10. ECMAScript 2015: modernizar sem recomeçar
  11. Frameworks e TypeScript
  12. Porque ganhou o JavaScript
  13. Cronologia
  14. Perguntas frequentes
  15. JavaScript foi realmente criado em dez dias?
  16. JavaScript e Java estão relacionados?
  17. Qual é a diferença entre JavaScript e ECMAScript?
  18. O DOM faz parte de JavaScript?
  19. Porque conserva JavaScript comportamentos antigos?

O JavaScript tornou-se a linguagem nativa da Web. Dá vida às interfaces, reage às ações dos utilizadores, comunica com servidores e executa aplicações completas no navegador. Com Node.js chegou também aos servidores e às ferramentas de desenvolvimento. Em 1995, nada disto estava previsto a esta escala.

A sua história não é, portanto, a execução de um plano perfeito. É a história de uma linguagem nascida sob pressão, tornada indispensável pela distribuição universal e continuamente melhorada sem poder simplesmente abandonar o seu passado.

1995: tornar o navegador programável

No início da década de 1990, a Web era sobretudo documental. O HTML descrevia o conteúdo, o HTTP transportava recursos e o navegador apresentava a página. Para obter um novo resultado era normalmente necessário voltar a contactar o servidor.

A Netscape percebeu que o navegador podia tornar-se uma plataforma de aplicações. Queria uma linguagem leve que os autores pudessem inserir diretamente nas páginas, em complemento de Java, então fortemente promovido pela Sun.

Brendan Eich entrou na Netscape em abril de 1995 e, em maio, construiu em cerca de dez dias o primeiro protótipo, Mocha. Os famosos «dez dias» referem-se a esse protótipo, não ao JavaScript moderno. Mocha passou a LiveScript e depois a JavaScript, no final de 1995.

O nome aproveitou a popularidade de Java, mas criou uma confusão duradoura. JavaScript não é um Java simplificado. A sua aparência lembra a família C, enquanto entre as influências profundas estão Scheme, pelas funções de primeira classe, e Self, pelos objetos baseados em protótipos.

Um modelo pouco habitual sob uma sintaxe familiar

Em JavaScript, as funções são valores: podem ser guardadas, passadas e devolvidas. Este modelo adapta-se particularmente bem a interfaces orientadas por eventos.

O modelo histórico de objetos baseia-se em protótipos. Os objetos podem delegar a procura de propriedades noutros objetos. A sintaxe moderna class oferece uma abstração familiar, mas continua assente neste mecanismo.

A tipagem dinâmica e as conversões implícitas facilitaram a escrita de pequenos scripts, mas também produziram peculiaridades conhecidas. Grande parte da evolução posterior consiste em melhorar a linguagem sem quebrar páginas que dependem de comportamentos antigos.

JavaScript não é o navegador

A linguagem e o ambiente Web são facilmente confundidos. No entanto, o DOM, os eventos, a rede e o armazenamento Web são API do navegador, não partes do núcleo ECMAScript.

Esta distinção tornou-se fundamental quando o JavaScript saiu do navegador: a mesma linguagem pode funcionar em ambientes diferentes, cada um com as suas próprias API.

Historicamente, o DOM foi ainda assim decisivo. Ao expor a página como uma estrutura programável, permitiu alterar texto, atributos, estilos e elementos depois do carregamento. O documento Web começou a transformar-se numa interface dinâmica.

A guerra dos navegadores e a necessidade de um padrão

A Microsoft introduziu JScript no Internet Explorer em 1996. Netscape e Microsoft disponibilizavam também API incompatíveis, obrigando os programadores a lidar com diferenças entre navegadores.

A Netscape submeteu então a linguagem à Ecma International. Em 1997 surgiu a primeira edição da ECMA-262, que definiu ECMAScript.

JavaScript continuou a ser o nome corrente; ECMAScript tornou-se a especificação normalizada. A normalização não eliminou imediatamente as diferenças entre navegadores, mas deu ao núcleo da linguagem uma referência independente de um único fabricante. ECMAScript 3, publicado em 1999, tornou-se durante anos a base do JavaScript amplamente utilizado.

A retrocompatibilidade torna-se uma regra da Web

A primeira guerra dos navegadores deixou API proprietárias, motores inconsistentes e muito código de contorno. Estabeleceu também uma restrição duradoura: a Web procura não quebrar conteúdos existentes.

typeof null, igualdade fraca, conversões implícitas e antigas regras de âmbito têm origens diferentes, mas um comportamento utilizado em larga escala torna-se difícil de alterar de forma incompatível. O JavaScript moderno tende, por isso, a acrescentar mecanismos melhores em vez de reescrever o passado.

ECMAScript 4: aprender a evoluir sem uma rutura

Nos anos 2000, ECMAScript 4 propôs uma transformação muito ambiciosa, incluindo classes mais formais, tipos opcionais e numerosas novas funcionalidades. Os participantes não chegaram a acordo sobre complexidade, compatibilidade e direção, e o projeto foi abandonado.

A experiência moldou o futuro. O JavaScript passou a evoluir sobretudo através de mudanças graduais e compatíveis. ECMAScript 5 chegou em 2009 com strict mode e melhorias importantes para objetos e arrays.

Ajax e jQuery: JavaScript alimenta aplicações Web

Em meados dos anos 2000, aplicações como Gmail e Google Maps mostraram que uma página podia comunicar com servidores em segundo plano e atualizar apenas parte da interface. Em 2005, o termo Ajax popularizou esta abordagem.

Os sites começaram a comportar-se como aplicações. JavaScript deixou de servir apenas para validações e efeitos e passou a gerir estado e interação.

As diferenças entre navegadores continuavam difíceis. A partir de 2006, jQuery ofereceu uma API mais uniforme para DOM, eventos e pedidos. O seu enorme sucesso refletia a fragmentação da plataforma da época. À medida que os navegadores convergiram para os padrões, parte desta camada de compatibilidade tornou-se menos necessária.

A corrida dos motores JavaScript

Aplicações mais complexas levaram os fabricantes a investir fortemente no desempenho. Em 2008, a Google apresentou o V8 com o Chrome. A concorrência com SpiderMonkey, JavaScriptCore e outros motores acelerou enormemente o JavaScript. A compilação just-in-time tornou viáveis aplicações muito maiores no navegador.

Node.js: sair do navegador

Em 2009, Ryan Dahl criou o Node.js em torno do V8. O JavaScript passou a poder ser utilizado de forma prática em servidores e ferramentas de linha de comandos, com um modelo de entrada/saída assíncrono adequado a software de rede.

Node.js transformou o ecossistema. As equipas puderam utilizar JavaScript no cliente e no servidor, npm cresceu até se tornar um enorme registo de pacotes e a linguagem espalhou-se pelos sistemas de build, testes e automatização.

ECMAScript 2015: modernizar sem recomeçar

ECMAScript 2015 (ES6) introduziu let, const, funções arrow, módulos, promises, geradores, sintaxe de classes e muitas outras funcionalidades.

As novidades não substituíram o JavaScript antigo: construíram uma camada moderna compatível com o código existente. Depois disso, ECMAScript adotou um ciclo anual, com propostas que amadurecem progressivamente no processo TC39.

Frameworks e TypeScript

Com o crescimento das aplicações, o desafio passou a ser a organização de grandes interfaces. Backbone, Angular, React, Vue, Svelte e outras ferramentas propuseram modelos diferentes para componentes, estado e renderização. Fazem parte do ecossistema construído sobre JavaScript, não do núcleo da linguagem.

Em 2012, a Microsoft apresentou TypeScript, que acrescenta sobretudo um sistema de tipos estáticos e é transformado em JavaScript para execução nos ambientes existentes. TypeScript não substitui JavaScript: depende dele.

Porque ganhou o JavaScript

A vantagem decisiva do JavaScript não foi a perfeição, mas a distribuição. Todos os principais navegadores incluíam um motor JavaScript sem exigir qualquer instalação adicional.

A disponibilidade universal criou um ciclo de reforço: mais utilizadores atraíram mais investimento em motores, padrões, ferramentas e bibliotecas. A capacidade de evoluir sem abandonar a antiga Web protegeu essa vantagem.

O JavaScript de 2026 é, por isso, uma plataforma coletiva. Brendan Eich criou o núcleo inicial, mas a linguagem moderna resulta do trabalho do TC39, das equipas dos motores, dos fabricantes de navegadores, dos criadores de ferramentas e de milhões de programadores.

Cronologia

  • 1995: Mocha, LiveScript e JavaScript na Netscape.
  • 1996: JScript no Internet Explorer; começa a normalização na Ecma.
  • 1997: primeira edição da ECMA-262.
  • 1999: ECMAScript 3.
  • 2005: Ajax populariza aplicações Web assíncronas.
  • 2006: surge jQuery.
  • 2008: Chrome e V8 intensificam a corrida pelo desempenho.
  • 2009: ECMAScript 5 e Node.js.
  • 2012: apresentação do TypeScript.
  • 2015: ECMAScript 2015 moderniza profundamente a linguagem.
  • Desde 2016: ECMAScript evolui num ciclo anual.

Perguntas frequentes

JavaScript foi realmente criado em dez dias?

Brendan Eich construiu o primeiro protótipo em cerca de dez dias, em maio de 1995. A linguagem publicada e normalizada continuou depois a evoluir durante três décadas.

JavaScript e Java estão relacionados?

Têm nomes semelhantes e alguns elementos sintáticos em comum, mas são linguagens distintas. A associação do nome JavaScript a Java foi sobretudo uma decisão comercial.

Qual é a diferença entre JavaScript e ECMAScript?

ECMAScript é a especificação padrão do núcleo da linguagem. JavaScript é o nome histórico e corrente das suas implementações.

O DOM faz parte de JavaScript?

Não. O DOM é uma API fornecida pelo ambiente Web. Outros ambientes JavaScript, como Node.js, disponibilizam API diferentes.

Porque conserva JavaScript comportamentos antigos?

Porque alterá-los de forma incompatível poderia quebrar enormes quantidades de páginas existentes. A retrocompatibilidade é uma restrição central da sua evolução.

Este artigo foi útil?

Fontes e referências

  1. 1.ACM - JavaScript: The First 20 Years
  2. 2.Ecma International - ECMA-262
  3. 3.MDN - JavaScript language overview

Coleção

Linguagens de programação

16 / 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