O ano de 2010 vai terminando. Esse foi um ano onde o Node.JS começou a ganhar um forte hype. Muitos frameworks surgindo, muita gente blogando sobre o assunto. Palestras, eventos e outras coisas mais. Depois de um tempo sem blogar sobre Node (eu sou empregado em tempo integral e no dia a dia trabalho com outras tecnologias), vou tentar fazer um resumo do que eu tenho acompanhado nesses últimos meses.

JSConf.eu

O tradicional evento Europeu de Javascript contou com diversas apresentações sobre Node.JS. Muitos devs criando coisas legais e apresentando nesse evento. Foi bem diferente do JSConf.us desse mesmo ano, que sobre Node.JS só teve mesmo a palestra do Ryan Dahl, o autor da ferramenta.

Node.js Camp

Agora em Dezembro aconteceu o que podemos chamar de o primeiro evento somente sobre Node.JS, promovido e patrocidado pela Joyent, que é a empresa que mais tem investido na tecnologia, inclusive tendo contratando recentemente o Ryan Dahl.

Nesse evento tivemos diversas palestras dos desenvolvedores das principais ferramentas associadas ao Node, como Socket.io, NPM, entre outros. Eu queria muito ter ido a esse evento, mas infelizmente isso não era uma opção, pois tinha compromissos no meu trabalho.

Ecossistema

No segundo semestre deste ano, aconteceu uma explosão de bibliotecas para Node.JS. Hoje em dia existe biblioteca para fazer praticamente qualquer coisa que fazemos com outras tecnologias web, desde action frameworks, acesso a bancos relacionais e NoSQL até frameworks de testes automatizados e test doubles. Vale a pena uma conferida nas principais bibliotecas, acessando a página de módulos do projeto.

No github, Javascript empatou com Ruby como linguagem mais utilizada, graças a explosão de repositórios node-* ou *.js, bastando uma busca rápida para perceber o quanto esses repositórios tem alavancado Javascript.

O site howtonode.org vem ganhando bastante destaque pelo seu ótimo conteúdo de diversos autores, se tornando referência internacional no assunto.

Hosting

A Joyent abriu bem mais slots para sua hospedagem beta, oferecida no site no.de (vale um post em separado só sobre eles). Basicamente você precisa de um token, o qual você solicita e depois recebe o alerta por email de que o token já está disponível. Tenho usado essa hospedagem gratuita pra fazer alguns testes e tenho gostado bastante. É possível atualizar a versão do Node, fazer restart do serviço, olhar os logs tranquilamente e instalar pacotes livremente. Só não sei se colocaria alguma coisas séria nele nesse momento, pois ainda está muito no começo. Por enquanto deixo para testes e brincadeiras.

Mais recentemente, a NodeJitsu começou a oferecer também como beta uma hospedagem, mas essa até agora não consegui o invite :(, apensar de volta e meia eu colocar meu email lá, na expectativa de conseguir. É mais recente que o no.de, mas parece que vai ser tão interessante quanto, pois também tem um fluxo baseado no git.

O Heroku fechou temporáriamente o suporte a Node para novos usuários. Basicamente eles estão fazendo algumas mudanças e devem abrir novamente agora no início de 2011. Baseado no excelente trabalho que eles tem feito com Ruby, tenho certeza que vão mandar muito bem com Node, mas até que isso aconteça, o Heroku não é uma opção.

Destaques

Dentre vários acontecimentos e lançamentos, alguns merecem um destaque maior. Vamos a eles:

A IDE Cloud9 é um projeto muito interessante da ajax.org para provar o conceito de IDEs no browser. Antes de testar o projeto achei que ia ser mais uma toscaria que já ví muita gente tentando por ai. Pra minha surpresa foi exatamente o contrário. A responsividade quando você está editando o código é muito boa, e apesar de algumas poucas vezes bugar, está extremamente aceitável para um projeto que ainda está começando. Esse projeto foi lançado na JSConf.eu, a qual mencionei no início do post e tem um vídeo disponível da apresentação.

Outro destaque interessante, mas um pouco mais simples é o JsApp.US, um serviço onde você pode criar uma aplicação inteira usando apenas a página deles, de forma online. Dá pra testar o arquivo isoladamente na hora ou fazer deploy direto num subdomínio. Achei um pouco estranho desenvolver assim, mas é muito interessante, pois além do editor de código online, existe uma espécie de shell no final que te permite executar comandos do tipo salve, deploy, open, entre outros. Tem um autocomplete inclusive. Em fim, apesar de ser um paradigma diferente eu acabei gostando bastante. A diferença dele para o Cloud9 é que a IDE Cloud9 por enquanto você instala na sua máquina e esse já um SaaS (Software as a Service), com editor e hospedagem juntos. O melhor de tudo é que o serviço é gratuito.

Rocket Pack Game Engine é uma engine experimental para jogos multiplayer. Falei um pouco sobre essa engine no DevInRio 2010 e na RubyConf Brasil 2010. Muitos desenvolvedores e empresas estão enxergando Node.JS como uma ótima plataforma para construir servidores para esse fim.

Um destaque não menos importante foi o Soda, da LearnBoost, uma das primeiras a postar conteúdo sobre Node.JS. Basicamente é um adapter para usar o Selenium. Em parceria com a SauceLabs, existe um serviço para testes usando uma estrutura cloud.

Outro grande destaque desse fim de ano foram os 2 projetos relacionados ao Canvas 2D, um da LearnBoost e outro da ajax.org. Acabam sendo concorrentes uma da outra, mas espero que aconteça um merge em breve. Vale a pena conferir o da ajax.org e o da LearnBoost.

Uma das aplicações mais fantásticas que vi feitas em Node.JS até hoje foi o Transloadit, um SaaS para upload de fotos e vídeos, que oferece Crop/Resize, Video Encoding, Thumbnail extraction e integração com o S3. Esse serviço merece um post separado, mas basicamente você consegue definir um fluxo básico montando um JSON para definir os passos para o processamento do arquivo recebido pela ferramenta de upload. Eles chamam esse processo de Assembly (isso lembra alguma coisa?). Uma degustada na documentação dessa parte é bem interessante.

Pra fechar

Pra fechar bem o ano temos a entrevista de Ryan Dahl no InfoQ e o release 0.2.6 lançado hoje, 31/12/2010.