As vezes eu digo que Node.js é o futuro. Mas está errado. Node.js é o presente. Se você quer fazer apps com Ionic, por exemplo, você precisa ter Node instalado. Até pra brincar com .NET Core, você pode utilizar Node pra criar sua Web API.
E não sei você, mas, eu usei várias vezes o npm, antes mesmo de entender o que é Node.js. Se você está com esse problema, vamos acabar com ele agora.
Node.js, o que é?
Em miúdos, Node é JavaScript do lado servidor. Não entendeu? Com ele, você consegue criar várias tipos de aplicações Web utilizando apenas JavaScript. E isso é sensacional. Não só porque eu sou Front-end e é ‘mais fácil’ fazer uma aplicação toda em JavaScript (vai achando que é tudo moleza com JS), tanto porque ele é bem mais simples que Apache ou IIS – o que implica no fato de que Node.js não é bala de prata, e não deve ser usado pra solução de qualquer problema.
Objetivo
O objetivo do criador, Ryan Dahl, não era colocar JavaScript no lado servidor, mas sim uma forma de fazer I/O, alocando menos memória e criando menos thread, trabalhando de forma assíncrona, possibilitando mais concorrência.
V8 JavaScript Engine
É o interpretador JavaScript, open source, de alta performance do Google, escrito em C++. Ele foi desenvolvido com o objetivo de atender o Google Chrome. Convenhamos, o Chrome, está entre os navegadores mais rápidos, e o V8 é o grande responsável pelo desempenho. Obs: V8, é multiplataforma, portanto, a instalação do Node, é bem simples para qualquer plataforma.
libuv
libuv é uma biblioteca multiplataforma com foco em I/O assíncrono. Foi desenvolvido, primeiramente, para ser usado com Node.js. Não vou entrar em muitos detalhes, mas se você realmente quiser aprender a melhor forma de escalar uma aplicação Node e a melhor forma de fazer I/O, leia a documentação do libuv.
Core Library
Esse é o terceiro pilar de Node, e também não vou entrar em muitos detalhes, mas Node.js Core Library é composto por módulos escritos em JavaScript como http, stream, cluster, dns, net, crypto, e outros. Eles se conectam através de Bindings C++ com o V8 e a libuv.
Quem está usando Node.js?
Eu coloquei um link especificando onde e porque, cada uma das empresas acima usa o Node.js. Lembre-se, não existe bala de prata.
Curtiu? Assim como React.js, se você já conhecia a tecnologia, o texto pode não ter te inserido nenhuma informação nova, mas a ideia geral aqui é dar um resumão pra quem tá querendo entender e conhecendo agora a tecnologia.
Aproveita e curte minha página, pra ficar sabendo dos posts em primeira mão! Dúvida deixa nos comentários, boa leitura!