Node.js: Vantagens e opinião pessoal
Tags: javascript, node
Published: 2023-05-04 18:42:28

De acordo com a maioria das fontes, quando se pesquisa as linguagens mais utilizadas para desenvolvimento back-end, javascript é a que se destaca. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3dpxve4ulxyza97rsvj9.png)
fonte: <https://blog.back4app.com/backend-programming-languages-list/>

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2qwx6z3qjlv4c43ttki.png)
fonte: <https://www.geeksforgeeks.org/top-7-programming-languages-for-backend-web-development/>


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6mlc4a78qilbgxws4aq6.png)
fonte: <https://www.simplilearn.com/tutorials/programming-tutorial/backend-languages>.

Apesar de haver opções mais robustas e consolidadas no mercado, a escolha pelo uso de Node.js se dá principalmente no desenvolvimento web, devido ao conhecimento prévio de muitos ao desenvolver o frontend. No entanto, as vantagens dessa escolha não se limitam somente a isso: 

**1. Node.js se destaca pela sua rapidez e escalabilidade:**
Por ser um ambiente construído sobre o "motor" V8 javascript da google, é conhecido pela sua ótima performance, sendo capaz de processar um longo tráfego de requisições. Além disso, é single-threaded, o que significa que as requisições feitas a um servidor que o utiliza, serão processadas assíncronamente, ou seja, não é preciso que a execução seja bloqueada para que a requisição atual seja completada antes de seguir para a próxima.

**2. Possui uma comunidade robusta e engajada:**
Uma das consequências de ser uma das linguagens mais utilizadas para desenvolvimento web é refletida na grande comunidade que contribui para propagação do conhecimento sobre Node. Isso pode ser visto desde posts em forúns de dúvidas até publicações de artigos sobre o assunto em sites como esse. 
Só no fórum , existe um total de 33944 questões publicadas com a tag nodejs:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/um8g1hd5edvcyitqhtwh.png)

**3. É compativel com diversas plataformas:**
É possível desenvolver aplicações para sistemas Windows, Linux, MacOS e muito mais. Pode-se desenvolver também tanto para web, utilizando frameworks como por exemplo Express.js e Fastify.js, para mobile juntamente com react e também para aplicações nativas desktop, utilizando Electron.js. A linguagem é utilizada, além disso, para construção de dispositivos Iot e para aprendizado de máquina com treinamento de modelos e processamento de linguagem natural.
Exemplos:
<https://rubenmarcus.medium.com/nature-language-processing-em-javascript-com-natural-4e62c1c6231e>
<https://www.freecodecamp.org/news/iot-and-node-js-how-to-catch-the-opportunity/>
<https://blog.rocketseat.com.br/electron-construindo-aplicacoes-desktop-com-javascript/>

**4. Opinião pessoal:**
Como estudante de graduação, ingressei na faculdade sem conhecimento prévio sobre programação e desenvolvimento de sistemas. No curso de ciência da computação, tive contato com linguagens mais antigas como Java e C. A partir do conhecimento mais teórico que adquiri, procurei aprender a prática em fontes externas, como bootcamps e cursos online. Me interessei principalmente por desenvolvimento back-end e como o uso de Node.js estava se popularizando cada vez mais, escolhi aprender a desenvolver códigos que desenvolviam tarefas básicas até entender o conceito de APIs começar a implementá-las. O fato da linguagem javascript ter sido derivada de C e Java facilitou meu aprendizado dentro e fora da faculdade, além da linguagem ser por si só fácil de aprender e não ser tão verbosa. 
Na disciplina de engenharia de software, utilizei nodejs para desenvolver uma aplicação para conectar empresas e candidatos, com uma proposta diferente das aplicações que já existem no mercado: a página principal seria composta por um feed em que, caso você logasse no sistema como candidato, veria perfis de vagas (postadas por recrutadores) ordenadas de acordo com os requisitos que seu perfil cumprisse para aquela vaga. E no caso das empresas, o feed mostraria os perfis de candidatos ordenados por habilidades que se adequassem a vaga publicada. A escolha por Node.js foi trivial: já era uma linguagem conhecida tanto pelo time responsavel pelo frontend, quanto pelo backend, além de precisarmos de um servidor rápido e com execução assíncrona. A possibilidade de uso de machine learning me animou, para possívelmente dispor o feed de acordo com a relevância dos perfis para determinado usuário, mas isso ficou no backlog, para futuras implementações.
Algo que percebi no desenvolvimento desse projeto, foi a falta de tipagem, o que tinha impacto na organização dos objetos e dos métodos implementados, mas que comecei a utilizar posteriormente no projeto que estou atuando profissionalmente, utilizando Typescript para desenvolver APIs de microsserviços para um sistema de pagamentos, em que senti muita diferença e mais segurança na hora de implementar os códigos.

**5. Considerações finais**
Node.js é uma ótima opção a se considerar para desenvolvimento backend e outros tipos de tecnologia, como foi mostrado ao longo desse artigo. Com uma comunidade ativa e linguagem simples, facilita seu aprendizado e implementação de sistemas. Está crescendo cada vez mais em uso e popularidade. Como incentivo ao aprendizado e escolha pelo framework, deixo aqui o total de oportunidades abertas atualmente para se trabalhar com Node.js, nacionais e mundiais:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y31ayntj7zbie4gkonfu.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n9kxz1na09c54gp6x9q8.png)

Fonte: linkedin.com