_ _    _ _____  ___   __                       
 __      _(_) | _(_)___ / ( _ ) / /_   ___ ___  _ __ ___  
 \ \ /\ / / | |/ / | |_ \ / _ \| '_ \ / __/ _ \| '_ ` _ \ 
  \ V  V /| |   <| |___) | (_) | (_) | (_| (_) | | | | | |
   \_/\_/ |_|_|\_\_|____/ \___/ \___(_)___\___/|_| |_| |_|

Node.js

O tópico Node.js tem chamado a atenção de muitas pessoas ultimamente. Com a sua relevância no ambiente atual, não é de surpreender que tenha se tornado objeto de inúmeros debates e análises. A importância de Node.js estende-se a diversas áreas, da política à cultura popular, influenciando as nossas percepções e decisões. Neste artigo exploraremos detalhadamente os diferentes aspectos relacionados a Node.js, examinando seu impacto e relevância na sociedade moderna. Através de uma abordagem abrangente e crítica, pretendemos lançar luz sobre este tema e proporcionar uma compreensão mais profunda do seu significado e implicações na nossa vida quotidiana.
Node.js
Autor Ryan Dahl
Desenvolvedor Node.js Developers, Linux Foundation
Lançamento 27 de maio de 2009 (15 anos)
Versão estável 22.9.0 (17 de setembro de 2024)
Escrito em C, C++, JavaScript
Sistema operacional Linux, Windows, macOS, SmartOS, AIX, FreeBSD
Gênero(s) Sistema de tempo de execução
Licença MIT
Estado do desenvolvimento Ativo
Página oficial nodejs.org
Repositório node no GitHub

Node.js é um software de código aberto, multiplataforma, baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web.

A principal característica do Node.js é sua arquitetura assíncrona e orientada por eventos. O runtime do Node.js é single-thread — uma única thread (chamada de Event Loop) é responsável por executar o código Javascript, sem a necessidade de criar novas threads, o que torna o código mais simples de manter. Chamadas que seriam bloqueantes, como entrada/saída, são realizadas de forma assíncrona usando a libuv.

Node.js é usado pela GoDaddy, Groupon, IBM, LinkedIn, Microsoft, Netflix, PayPal, Rakuten, SAP, Voxer, Walmart, e Yahoo!.

Histórico

Ryan Dahl, Criador do Node.js

Ryan Dahl se inspirou para criar Node.js depois de ver barra de progresso de carga de arquivos no Flickr, ele percebeu que o navegador não sabia o quanto do arquivo foi carregado e tinha que consultar o servidor web.

Características

A principal característica e diferença de outras tecnologias (como PHP, Java, C# e C) é a execução das requisições/eventos em single-thread, onde apenas uma thread (chamada de Event Loop) é responsável por executar o código Javascript, sem a necessidade de criar nova thread que utilizaria mais recursos computacionais (por exemplo memória RAM) e sem o uso da fila de espera.

Gerenciamento de pacotes

O gerenciamento dos pacotes é feito através do node package manager (npm), e npx (node package extractor), o npx foi introduzido na versão 5.2.0 do JavaScript, antes deveria ser instalado individualmente. O primeiro tem o propósito de instalar para uso posterior código armazenado num package de nodejs, instalando o software globalmente ou localmente, já o segundo tem o propósito de executar a nível local o código instalado globalmente. Um exemplo disso é o npx create-react-app que tem como propósito instalar em nível local um gabarito (template) vazio de um site de react, pronto a ser usado, através de uma fórmula instalada com npm.

Vantagens de uso

Flexibilidade

O Node.js possui o gerenciador com inúmeros pacotes e software reusável NPM (Node Package Manager), dando ao interpretador um potencial a ser utilizada em qualquer situação. O pacote mais conhecido é o Express.js, um arcabouço (framework) completo para desenvolvimento de aplicações web.

Leveza

Um ambiente Node.js não exige muitos recursos computacionais tradicionais. Se utilizado em conjunto com a ferramenta Docker, o ganho na velocidade de deployment e replicação de máquinas pode ser muito significativo e, em ambientes escaláveis, de microsserviços e serverless, representa menos custo e mais eficiência. Um exemplo de uso é uma aplicação de troca de mensagens (conversa, bate-papo ou webchat).

Suporte

Conta com suporte das principais empresas de serviços de armazenamento na nuvem, como a AWS, Google Cloud e, Microsoft Azure, com suporte nativo ao Node.JS.

Produtividade

O gerenciador NPM fornece pacotes reusáveis disponíveis gratuitamente para uso em grupo;

Mesma linguagem no front end e back end, que pode representar ganhos de reúso de código e criação de equipes multidisciplinares, reaproveitando recursos;

A possibilidade de deployments e iterações mais rápidas, e resolução de problemas on the fly, também permitem a criação de soluções próprias e inovadoras, como a Uber faz para resolver alguns problemas.

Ver também

Referências

  1. «Release v0.0.1». Github (em inglês). 27 de maio de 2009. Consultado em 22 de maio de 2021 
  2. «Release 2024-09-17, Version 22.9.0 (Current), @RafaelGSS». Github (em inglês). 17 de setembro de 2024. Consultado em 12 de outubro de 2024 
  3. «node/BUILDING.md at master». Github. Consultado em 22 de maio de 2021 
  4. «Sobre | Node.js». Node.js. Consultado em 22 de maio de 2021 
  5. «node/LICENSE at master». GitHub (em inglês). Consultado em 22 de maio de 2021 
  6. «node/README.md at master». Github (em inglês). Consultado em 22 de maio de 2021 
  7. «Home | Node.js». Node.js (em inglês). Consultado em 22 de maio de 2021 
  8. «About». Node.js. Consultado em 25 de novembro de 2022 
  9. a b «Introduction to Node.js». Node.js. Consultado em 25 de novembro de 2022 
  10. Why GoDaddy’s Nodejitsu deal is great for Node.js, VentureBeat, February 10, 2015
  11. Geitgey, Adam (30 de outubro de 2013). «I-Tier: Dismantling the Monoliths». Groupon. Consultado em 30 de abril de 2014 
  12. «IBM Bluemix». Consultado em 4 de julho de 2015 
  13. «You'll never believe how LinkedIn built its new iPad app». VentureBeat. 2 de maio de 2012. Consultado em 10 de maio de 2012 
  14. «Blazing fast node.js: 10 performance tips from LinkedIn Mobile». Consultado em 7 de abril de 2015 
  15. Baxter-Reynolds, Matthew (9 de novembro de 2011). «Here's why you should be happy that Microsoft is embracing Node.js». London: The Guardian. Consultado em 10 de maio de 2012 
  16. «WebMatrix - Front End Web Developers take note (ASP.NET, PHP, node.js and more)». Consultado em 2 de agosto de 2014 
  17. Node.js in Flames November 19, 2014
  18. «Clash of the Titans: Releasing the Kraken, NodeJS @paypal». fluentconf.com. 28 de maio de 2013. Consultado em 11 de setembro de 2013 
  19. «All such companies and their products in which Node.js is used». Consultado em 2 de agosto de 2014 
  20. «SAP AppBuilder». SAP. 10 de março de 2014. Consultado em 10 de março de 2014 
  21. The Node Ahead: JavaScript leaps from browser into future, The Register, March 1, 2011
  22. «Why Walmart is using Node.js». VentureBeat. 24 de janeiro de 2012. Consultado em 10 de maio de 2012 
  23. «Yahoo! Announces Cocktails Shaken, Not Stirred». Consultado em 7 de abril de 2015 
  24. a b c d e f g lenon (5 de setembro de 2018). «Node.js - O que é, como funciona e quais as vantagens». Opus Software. Consultado em 10 de outubro de 2019 

Ligações externas