CODEHAMPER

☰ Menu

História

Na JSConf 2009 Européia, um programador chamado Ryan Dahl, apresentou um projeto em que estava trabalhando. Este projeto era uma plataforma que combinava a máquina virtual JavaScript V8 da Google e um laço de eventos.

O projeto apontava para uma direção diferente das outras plataformas em JavaScript que rodam no servidor: todos I/O primitivos são orientado a evento. Aproveitando o poder e a simplicidade do Javascript, isso tornou tarefas difíceis de escrever aplicações assíncronas em tarefas fáceis.

Node nem foi o primeiro software do gênero: o Rhino já era bastante utilizado neste papel, e a própria Netscape tinha lançado o Enterprise Server no meio da década de 90! Mas a performance do Node, sua filosofia inovadora, código-fonte aberto, portabilidade e um bom marketing no lançamento tornaram-no sinônimo de "Javascript para uso geral".

Node.js

Como um ambiente de execução Javascript assíncrono orientado a eventos, o Node.js é projetado para desenvolvimento de aplicações escaláveis de rede.

Node.js é semelhante no projeto, e influenciado por sistemas como Event Machine do Ruby ou Twisted do Python. Porém, leva o modelo de eventos um pouco mais além. No Node.js o event loop é exposto como uma parte do ambiente de execução ao invés de uma biblioteca. Em outros sistemas há sempre uma chamada bloqueante para iniciar o event-loop. Tipicamente o comportamento esperado é definido através de callbacks no início do script, e no final um servidor é iniciado por uma chamada bloqueante.

Em Node.js, HTTP é um cidadão de primeira classe, projetado para que tenha um alta taxa de fluxo e baixa latência. Isso torna o Node.js uma ótima escolha para servir como base para uma biblioteca web ou para um framework.