O Node.js é um runtime environment de código aberto executado na engine V8 do Chrome usando JavaScript, com alto potencial de escalabilidade sem estar atrelado a plataformas ou dispositivos. É frequentemente usado para desenvolver aplicativos server-side por ter essas características.

Simples e fácil de aprender

Com poucas linhas é possível criar uma API que responde "Olá Mundo". No entanto, mudanças simples podem ser feitas para que, em vez de uma simples linha de texto, o Node.js devolva um arquivo em JSON, por exemplo, de maneira muito similar.

A facilidade do desenvolvimento em Node.js se deve principalmente ao grande número de bibliotecas que ela oferece, permitindo que o programador se ocupe em tirar seu projeto do papel, enquanto os pormenores são cobertos por bibliotecas eficientes no trabalho braçal. Isso faz com que protótipos sejam simples de se construir. Como um exemplo simples de programação, abaixo segue uma API mostrando o bom e velho "Hello World" escrito em Node.js.

Bases sólidas

Inspirado no Event Machine do Ruby e no Twisted desenvolvido para Python, Node.js muda o paradigma de desenvolvimento em que tudo depende de Entrada-e-Saída. O Node.js se baseia em uma arquitetura formada por eventos de modo assíncrono e não bloqueável, sem que qualquer método trave sua execução enquanto aguarda alguma entrada ou saída. Dessa maneira, a performance do programa se mantém maior, tanto do ponto de vista de consumo de processamento da CPU quanto com uma vazão maior de informações, facilitando a escalabilidade de sistemas.

Ainda que use complexas lógicas de programação para realizar tarefas relativamente simples, o Node.js se apresenta como uma ferramenta interessante para quem está começando a programar e poderosíssima para quem já é experiente na área. Isso porque sua curva de nível de aprendizado é suave, e um conhecimento mais abrangente permite construir APIs robustas e de ponta. Não à toa, vem sendo usado em várias gigantes da tecnologia atualmente.

Constantemente atualizado

A novidade interessante é que recentemente a IBM divulgou que não desenvolve o SDK como distribuição proprietária e agora devolve o trabalho da equipe à comunidade, focando na distribuição aberta da ferramenta em código livre — já que a equipe da empresa já tinha grande participação no runtime, que era código livre desde a sua concepção.

Antes batizado de SDK for Node.js, que era o kit de desenvolvimento criado pela IBM para prover soluções em Javascript (tanto stand-alone quanto server-side) com vários outros serviços ofertados para as suas próprias plataforma — como AIX on Power, Linux on Power e Linux on IBM Z —, agora essa tecnologia está em domínio público da comunidade.

Open source

Já que o Node.js conta com o suporte da comunidade para o seu desenvolvimento, está em constante evolução devido a dezenas de contribuintes da plataforma ao redor do globo.

Em sua última iteração, o Node.js, atualmente na versão 10.15, traz total suporte às N-APIs introduzidas na versão 8 do runtime como feature experimental, as quais isolam os add-ons que podem ser adicionados à própria engine do Node com uma nova camada de abstração entre as APIs e ABIs. Dessa forma, solucionou-se o problema que os desenvolvedores de add-ons tinham com as manutenções constantes das características nativas da engine com novas iterações.

Como se trata de uma tecnologia livre, programadores também podem entrar no desenvolvimento de novas features para o runtime. A própria página do Node.js tem uma seção explicando os passos para se tornar um membro da comunidade e começar a botar a mão na massa, tanto resolvendo bugs quanto fazendo a triagem deles ou sugerindo melhorias.