terça-feira, agosto 31, 2010

Node Knockout (Parte 1): Node.js

Participei este fim de semana com meu irmão e mais dois amigos da competição Node.js Knockout, uma maratona onde cada equipe teve 48 horas para programar/desenvolver um produto que utilizasse o Node.js.

(pretendo escrever mais sobre o projeto que enviamos nos posts seguintes, mas se vc está curioso assista a estes dois videos: demo1, demo2)

Node o quê?


Eu deveria ter tirado a poeira deste blog para escrever sobre o Node.js antes…

Bom, o Node em poucas palavras é um interpretador de Javascript(engine V8, a mesma do Chrome) com alguns poderes especiais tipo acesso ao filesystem, processos, stack de rede e chamadas do sistema, etc… E o Node chuta bundas!

É sério!! Node.js é do caralho e se você ainda não brincou com ele, ou quer brincar mas está adiando o aprendizado por qualquer que seja o motivo, pare tudo e instale agora o node na sua máquina. Você pode me agradecer depois…

Mas você não precisa acreditar na minha palavra, se tiver com tempo eu recomendo assistir a tech talk do criador do projeto, e tirar suas próprias conclusões.

Enfim, eu comecei a brincar com o node há pouco tempo, e fazendo coisas bem simples, tipo esta ferramenta de linha de comando para consultar os Trending Topics do Twitter sem ter que sair do meu Terminal…

E o legal de começar a brincar com uma tecnologia que tem potencial enquanto ela ainda está no início (versão 0.2.0 e com trunk bem ativa) é que todos estão empolgados e todo mundo tem uma opinião de como implementar este ou aquele módulo, o que de certa forma trás renovação e competição para a mesa… dê só uma olhada nesta lista de libraries, tem de tudo e para todos os gostos!

Não só tem de tudo e para todos os gostos com tem n opcões de módulos diferentes para escolher qualquer que seja a funcionalidade que vc precise:

— Quer mysql? Toma, escolhe entre estas seis aqui.
— Precisa servir websockets? Ok, uma destas 4 aqui deve servir.
— Ah, mas eu queria um parser p/ opções da linha de comando bem simples…
— Sem problemas, veja se algum destes serve…
— Não gostou de nenhum? Faça um novo! Afinal, é tudo Javascript mesmo, e você já programa isso o dia inteiro para websites, oras…

[Update] Ok, eu exagerei na frase acima, não é tudo Javascript, vc pode desenvolver módulos nativos compilados em C ou C++ também :) (Veja a parte de Addons na página da API, ou este tutorial)

[Update 2] Confira as partes 2 e 3 deste post.