JavaScript: O que é o Node.js?
Em seus estudos sobre a linguagem de programação Javascript, provavelmente você se deparou com a ferramenta chamada Node.js. Caso tenha se perguntado o que é essa ferramenta, bem, você está com sorte! Vamos discuti-la aqui.
Explicando o Node.js
Segundo o próprio site do Node.js (2024), a ferramenta é um ambiente de execução (runtime) multiplataforma, gratuito e de código-fonte aberto. A plataforma permite que os desenvolvedores criem servidores, web apps, ferramentas de linha de comando e scripts.
O Node.js foi construído em torno da engine V8 JavaScript, que é o núcleo do navegador Google Chrome. Isso significa que o rutime permite que aplicações em JavaScript sejam executadas fora dos navegadores.
Principais características
De acordo com Pereira (2016), a principal característica da plataforma é ser single-thread (ou single process). Isso significa que uma aplicação em node.js não criará uma nova thread para cada requisição, o que é um paradigma um pouco diferente para aqueles acostumados a programar em multi-thread – como em Java ou .NET.
Outra característica interessante é o conjunto de primitivas de E/S assíncronas e não-bloqueantes nas bibliotecas padrão do runtime. Dessa forma, o comportamento de bloquear a CPU em operações de I/O torna-se a exceção no funcionamento das aplicações construídas em cima da plataforma (NODE.JS, 2024). Para exemplificar, suponha que seu sistema necessite ler um arquivo imenso no armazenamento do servidor. Neste caso, a CPU não será bloqueada, permitindo que outras tarefas da aplicação sejam executadas. Quando a leitura do arquivo terminar, a CPU retornará para a conclusão dessa tarefa quando possível.
Pereira (2016) destaca também que o node.js é orientado a eventos (Event-Loop). Em outras palavras, as ações são disparadas por eventos que ocorrem a partir da interação do usuário ou de aplicações clientes. No caso do JavaScript client-side, os eventos costumam ser ações em mouses, teclados ou elementos de HTML. Quando programamos com JavaScript no server-side, os eventos são originados de operações de E/S (acesso a banco de dados, leitura de sinal em rede etc.)
Conclusão
E ai, o que achou do Node.js? Interessante, não é mesmo? Diversas gigantes da tecnologia têm adotado a ferramenta em suas soluções. Conforme descrito por Pessôa (2022), podemos citar:
- a Netflix: substituiu o renderizador baseado em Java pelo de JavaScript com Node.js;
- a IBM: criou o The Canary in the Gold Mine (CITGM), um utilitário de testes amplamente utilizado pela companhia;
- o LinkedIn: o aplicativo mobile da maior rede profissional é construído em Node.js e HTML5;
- a Uber: sistema de relacionamento entre usuários e condutores foi construído em Node.js.
Para saber mais sobre a origem e evolução do runtime, você pode assistir o filme Node.js: The Documentary | An origin story, disponível gratuitamente no Youtube e linkado abaixo. O vídeo está em inglês e tem legendas na mesma língua.
Bons estudos!
Referências
NODE.JS. Introduction to Node.js. 2024. Disponível em: https://nodejs.org/en/learn/getting-started/introduction-to-nodejs. Acesso em: 9 mai 2024.
PEREIRA, Caio Ribeiro. Construindo APIs REST com Node.js. 1 ed. São Paulo: Editora Casa do Código, 2016.
PESSÔA, Camila. Node.JS: definição, características, vantagens e usos possíveis. 2022. Disponível em: https://www.alura.com.br/artigos/node-js-definicao-caracteristicas-vantagens-usos. Acesso em: 24 mai 2024.