sábado, 4 de junho de 2011

A Era do Javascript

Meus primeiros contatos com Javascript datam de uma época distante, onde o Netscape era o mais popular browser da Internet! Eu usava um servidor Sun e estudava um produto chamado Netscape One, que vinha com uma tecnologia de script do lado servidor chamada de LiveScript. Ela já era também disponível no browser, mas não prestava para muita coisa na época. As tecnologias quentes eram o CGI e o SSI. Eu me interessava também pela novidade do momento, a tal de PHP 3 ! Se minha memória não falha, estou falando do período de 95 a 98.

Tecnologias como Java Applets nunca "pegaram", sempre foram consideradas lentas demais, pesadas demais. Já com o Javascript, além de lento, não se podia fazer muita coisa. A maior parte dos trabalhos se limitava a validação de campos e tarefas menores com strings e datas. Jogos em Javascript, só de forca e da velha. Nessa época eu escrevia CGI's em C++ e lembro da magia que foi aprender a programar em Perl.

Javascript nunca foi uma linguagem "seria" até alguns anos atrás, quando ficou impossível de ser ignorada. No lançamento do iPhone, muitos ficaram chocados com idéia inicial da Apple de aplicações web com Javascript... depois é que eles liberaram aplicações nativas. Isso já em 2007... mas a maioria dos celulares tinha browsers de Internet sofríveis, muitos sem Javascript. Hoje vemos compiladores de e para Javascript, compactadores, obfuscadores e uma infinidade de livros. Javascript está instalada na maioria dos computadores do mundo, incluindo telefones celulares e mesmo sistemas embarcados. Você pode até mesmo usar Javascript para instrumentar seu programa escrito em Java ou C++! É impossível ignorar a força do Javascript. A prova final para mim foi há algumas semanas quando vi uma pequena máquina virtual, suficientemente completa para rodar o kernel do Linux em Javascript, fora jogos como Doom e emuladores diversos, completamente escritos ou portados para Javascript!

A impressão que tenho é o mesmo que aconteceu na década de 80, onde para se ter velocidade programava-se em Assembly, mas era difícil e cada micro tinha o seu próprio Assembly incompatível. Isso era nítido na programação de jogos. Até nas revistas, os programas eram escritos parte em Basic, parte em Assembly. Com o passar do tempo, ficou prático escrever em Pascal e C, compiladas e muito mais fáceis que Assembly. Com o Javascript acontece a mesma coisa, quando começo a ver a quantidade de compiladores que agora geram códigos em Javascript, tenho a mesma impressão. Como escrever grandes programas em Javascript ainda é difícil, diversas bibliotecas e ferramentas podem ser utilizados para reduzir este esforço. Uma dessas ferramentas é a CoffeScript, que dá uma sintaxe limpa ao Javascript, inspirada em Python. É como se essas linguagens estivessem fazendo o trabalho que C e Pascal fizeram antes e o Javascript sendo o novo Assembly universal, afinal é suportado pela maioria dos micros e é multiplataforma. Não falo aqui que o Javascript substitui o Assembly, nada disso. Apenas um posicionamento das linguagens como ferramenta num cenário de aplicações global.

Como tudo agora é na ou para a Web, Javascript é incontornável. A popularização do suporte a HTML 5 nos browsers só vem a ajudar. Nos últimos anos, motores Javascript de alta performance se popularizaram no Google Chrome, FireFox, Safari e até mesmo no Internet Explorer! Canvas, WebGL, bancos de dados locais, web sockets, web workers, tudo disponível em praticamente qualquer browser, via Javascript!