Node.js
Autor | Ryan Dahl |
Desenvolvedor | Node.js Developers, Linux Foundation |
Lançamento | 27 de maio de 2009 (15 anos)[1] |
Versão estável | 22.9.0 (17 de setembro de 2024[2]) |
Escrito em | C, C++, JavaScript |
Sistema operacional | Linux, Windows, macOS, SmartOS, AIX, FreeBSD[3] |
Gênero(s) | Sistema de tempo de execução[4] |
Licença | MIT[5] |
Estado do desenvolvimento | Ativo |
Página oficial | nodejs |
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.[6][7]
A principal característica do Node.js é sua arquitetura assíncrona e orientada por eventos.[8] 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.[9] Chamadas que seriam bloqueantes, como entrada/saída, são realizadas de forma assíncrona usando a libuv.[9]
Node.js é usado pela GoDaddy,[10] Groupon,[11] IBM,[12] LinkedIn,[13][14] Microsoft,[15][16] Netflix,[17] PayPal,[18][19] Rakuten, SAP,[20] Voxer,[21] Walmart,[22] e Yahoo!.[23]
Histórico
[editar | editar código-fonte]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
[editar | editar código-fonte]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.[24]
Gerenciamento de pacotes
[editar | editar código-fonte]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
[editar | editar código-fonte]Flexibilidade
[editar | editar código-fonte]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.[24]
Leveza
[editar | editar código-fonte]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.[24] Um exemplo de uso é uma aplicação de troca de mensagens (conversa, bate-papo ou webchat).[24]
Suporte
[editar | editar código-fonte]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
[editar | editar código-fonte]O gerenciador NPM fornece pacotes reusáveis disponíveis gratuitamente para uso em grupo;[24]
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;[24]
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.[24]
Ver também
[editar | editar código-fonte]- ↑ «Release v0.0.1». Github (em inglês). 27 de maio de 2009. Consultado em 22 de maio de 2021
- ↑ «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
- ↑ «node/BUILDING.md at master». Github. Consultado em 22 de maio de 2021
- ↑ «Sobre | Node.js». Node.js. Consultado em 22 de maio de 2021
- ↑ «node/LICENSE at master». GitHub (em inglês). Consultado em 22 de maio de 2021
- ↑ «node/README.md at master». Github (em inglês). Consultado em 22 de maio de 2021
- ↑ «Home | Node.js». Node.js (em inglês). Consultado em 22 de maio de 2021
- ↑ «About». Node.js. Consultado em 25 de novembro de 2022
- ↑ a b «Introduction to Node.js». Node.js. Consultado em 25 de novembro de 2022
- ↑ Why GoDaddy’s Nodejitsu deal is great for Node.js, VentureBeat, February 10, 2015
- ↑ Geitgey, Adam (30 de outubro de 2013). «I-Tier: Dismantling the Monoliths». Groupon. Consultado em 30 de abril de 2014
- ↑ «IBM Bluemix». Consultado em 4 de julho de 2015
- ↑ «You'll never believe how LinkedIn built its new iPad app». VentureBeat. 2 de maio de 2012. Consultado em 10 de maio de 2012
- ↑ «Blazing fast node.js: 10 performance tips from LinkedIn Mobile». Consultado em 7 de abril de 2015
- ↑ 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
- ↑ «WebMatrix - Front End Web Developers take note (ASP.NET, PHP, node.js and more)». Consultado em 2 de agosto de 2014
- ↑ Node.js in Flames November 19, 2014
- ↑ «Clash of the Titans: Releasing the Kraken, NodeJS @paypal». fluentconf.com. 28 de maio de 2013. Consultado em 11 de setembro de 2013
- ↑ «All such companies and their products in which Node.js is used». Consultado em 2 de agosto de 2014
- ↑ «SAP AppBuilder». SAP. 10 de março de 2014. Consultado em 10 de março de 2014
- ↑ The Node Ahead: JavaScript leaps from browser into future, The Register, March 1, 2011
- ↑ «Why Walmart is using Node.js». VentureBeat. 24 de janeiro de 2012. Consultado em 10 de maio de 2012
- ↑ «Yahoo! Announces Cocktails Shaken, Not Stirred». Consultado em 7 de abril de 2015
- ↑ 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
[editar | editar código-fonte]- «Sítio oficial»
- node no GitHub
- «Just what is Node.js?» (em inglês). Artigo da IBM