JavaScript, ou JS para os íntimos, é uma das linguagens de programação mais populares e usadas no mundo. Ela é uma linguagem interpretada, de alto nível e multi-paradigma (orientado a objeto, funcional, imperativo e, protótipos). Com ela, é possível desenvolver desde páginas dinâmicas, aplicativos para smartphones, sistemas complexos e até jogos eletrônicos.
Hoje vamos aprender mais sobre o que é JavaScript, como ele funciona, e onde podemos utilizar essa linguagem.
Disclaimer: JavaScript não é Java
O nome é parecido e causa muita confusão mas, JavaScript NÃO é Java. Existe uma breve relação na criação da linguagem, mas ela para por ai. Explicarei melhor no próximo parágrafo.
Breve história do JavaScript
A internet era muito diferente de como conhecemos hoje, houve um tempo em que as páginas não passavam de sites estáticos, chatos e sem vida. Em seus primórdios, a World Wide Web era apenas um grande aglomerado de páginas tabeladas escritas em HTML, com links e imagens chamativas. Com o passar dos anos, e a popularização da internet, as necessidades e funcionalidades foram ficando cada vez mais complicadas e exigiam uma forma mais avançada de criar páginas que interagissem melhor com os usuários.
O JavaScript foi criado por Brendan Eich em 1995 durante seu tempo na Netscape Communications (para os geração Z, Netscape foi um dos primeiros navegadores), que, além de criar o JavaScript, foi também um dos fundadores da Mozilla Corporation. Inicialmente chamada de Mocha, suas primeiras versões eram de uso exclusivo da Netscape e seu desenvolvimento foi inspirado nas linguagens Java, Scheme e Self. No decorrer da história, a Netscape acabou fazendo uma parceria com a Sun, desenvolvedora do Java, que queria usar a tecnologia da Netscape para fortalecer a sua recém criada linguagem (Java), começaram então a veicular a linguagem de script JavaScript como uma companheira do Java, sem notar a possível concorrência que as duas acabariam por ter.
Durante um tempo, a luta por espaço de outras tecnologias na web mantiveram o JavaScript um tanto “congelado” e com uma certa rejeição de alguns desenvolvedores. Mas por volta de 2000, Douglas Crockford, um dos grandes responsáveis pela popularização do formato JSON e consequentemente o redescobrimento do JavaScript, então em pouco tempo a linguagem ganhou tração e dominou o mundo da internet graças ao trabalho de desenvolvedores independentes e de uma crescente comunidade. O JavaScript se torna cada vez mais uma linguagem robusta e com multi-aplicações, praticamente um Bombril com suas mil e uma utilidades.
Como funciona?
Computadores não entendem JavaScript, os ambientes sim.
JavaScript é uma linguagem interpretada e não compilada para código de máquina, ou seja, o JavaScript não vira um monte de 1 e 0, por isso “computadores não entendem javascript”. Para isso acontecer a linguagem precisa de um motor (engine) e de um ambiente de execução (runtime environment) para que ela possa funcionar.
Uma motor (engine) de JavaScript é um programa “escrito em C++” (nem todas as engines são, apenas para exemplo), que é uma linguagem compilada que o computador consegue entender e executar, então o motor passa por todo o código JavaScript e transforma em algo que o processador do computador consegue entender e executar – código de máquina. Esse motor roda dentro de um contexto, que compõe o nosso runtime environment, como no caso do navegador Chrome e do NodeJS, ambos usam a mesma engine mas possuem alguns contextos e funcionalidades diferentes. Temos alguns motores famosos, o já mencionado V8 roda no Chrome, Opera e Node e foi desenvolvido pela Google, já o Firefox embarca a engine SpiderMonkey desenvolvida pela Mozilla.
E todo esse contexto torna o JavaScript uma linguagem de alto nível, o motor é responsável por toda a abstração e problema de se comunicar com a máquina, fazendo com que o desenvolvimento seja mais fácil e otimizado.
ECMAScript
O JavScript segue as especificações definidas no ECMAScript, uma especificação de linguagem de programação baseada em scripts, padronizada e mantida pela Ecma International. Ela foi criada para padronizar as linguagens de script e ajudar a organizar as várias implementações independentes da linguagem.
Para que serve?
O JavaScript é uma linguagem muito versátil, com uma comunidade que cresce a cada dia, e suas aplicações também, o que a torna uma escolha popular para empresas com equipe reduzida: JavaScript, uma linguagem para governar tudo (one language to rule them all). Você provavelmente vai escutar muitas verdades brincadeiras de que a cada 5 minutos nasce uma biblioteca feita em JavaScript nova…
JavaScript no Navegador
Como aprendemos anteriormente, essa linguagem nasceu para dar vida ao navegador e segue firme e forte em seu objetivo. Antigamente o principal e praticamente único framework famoso da internet era o jQuery (na realidade atualmente mais de 70 milhões de sites ainda rodam com jQuery), mas com o avanço das engines e da capacidade de processamento dos computadores e celulares, novos frameworks, mais robustos e complexos surgiram para melhorar a experiência do usuário.
Alguns dos frameworks mais populares atualmente:
- ReactJS – Desenvolvido e mantido pelo Facebook, e aberto para a comunidade.
- VueJS – Desenvolvido e mantido por Evan You (ex Google), e aberto para a comunidade.
- Angular – Desenvolvido e mantido pelo Google, e aberto para a comunidade.
JavaScript no Backend com NodeJS
Em 2009, o Node.js foi desenvolvido por Ryan Dahl em torno do V8; Essencialmente como uma forma de rodar programas JavaScript fora do contexto de um navegador. Confira o artigo Afinal o que é NodeJS, onde explico melhor a história do NodeJS e como ele funciona.
No exemplo abaixo, temos um script simples que consome um recurso da internet que contém todos os dados de Pokemons e retorna as informações do Pikachu:
JavaScript em Desenvolvimento Mobile
O JavaScript possuí boas bibliotecas para desenvolvimento mobile, virando uma boa alternativa ao desenvolvimento nativo. Com apenas uma base de código, conseguimos desenvolver páginas na web, aplicativos iOS e Android. Alguns aplicativos famosos como Facebook, Instagram e Airbnb são desenvolvidos com JS. Veja alguns dos frameworks mais famosos:
No exemplo abaixo temos um aplicativo de calculadora construído com React Native:
JavaScript no IoT
Sua portabilidade ampla permite também a programação de dispositivos embarcados. Bibliotecas como a Johnny-Five permitem que você desenvolva para placas Arduino, Tessel 2, Raspberry Pi, Intel Edison, Particle Photon, e muito mais… usando JavaScript, a linguagem é compilada para a linguagem nativa de cada dispositivo.
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
var led = new five.Led(13);
led.blink(500);
});
JavaScript para Desenvolvimento de Jogos
E finalmente, graças aos grandes avanços em melhorias na performance das engines e as novas funcionalidades embarcadas nos navegadores, podemos criar jogos que rodam diretamente no navegador:
Mais exemplos de jogos feitos com JavaScript podem ser encontrados nesse link.
Onde aprender a programar com JavaScript?
Se você se animou com a linguagem e com todas as suas aplicações, tenho uma boa notícia para você! Existem diversos e bons materiais na internet, você pode também encontrar bons cursos na Udemy.
Muito bom o seu artigo. Gostei da sua maneira de escrever, eu li como se alguem estivesse me explicando.
Muito legal o artigo, bem completo, consegui aprender muita coisa que não sabia. Dispõe de códigos de exemplo o que deixa ainda mais interessante, agora entendo que tem diferença entre Java e JavaScript, suas aplicações, quem criou e quando surgiu. Me diverti com o exemplo do joguinho no final.
Fala Italo, fico feliz que tenha gostado! Obrigado pelo comentário, abraços!