Top Qs
Linha do tempo
Chat
Contexto

Node.js

software de código aberto usado para execução de códigos baseado em JavaScript Da Wikipédia, a enciclopédia livre

Node.js
Remove ads

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]

Factos rápidos Autor, Desenvolvedores ...

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]

Remove ads

Histórico

Resumir
Perspectiva
Thumb
Ryan Dahl, Criador do Node.js

O Node.js foi inicialmente escrito por Ryan Dahl em 2009,[24] cerca de 13 anos após a introdução do primeiro ambiente JavaScript para servidores, o LiveWire Pro Web da Netscape.[25] A versão inicial oferecia suporte apenas a Linux e Mac OS X. Seu desenvolvimento e manutenção foram liderados por Dahl e posteriormente patrocinados pela Joyent.[26]

Dahl criticou a capacidade limitada do Apache HTTP Server de lidar com muitas (10.000+) conexões simultâneas, bem como o paradigma dominante de programação sequencial, no qual aplicações poderiam bloquear processos inteiros ou causar a criação de múltiplas pilhas de execução para conexões simultâneas.

Dahl demonstrou o projeto na conferência inaugural European JSConf em 8 de novembro de 2009. O Node.js combinou o mecanismo JavaScript do Google V8, um event loop e uma API de I/O de baixo nível.[27]

Em janeiro de 2010, foi introduzido um gerenciador de pacotes para o ambiente Node.js chamado npm.[28] O gerenciador de pacotes permite que programadores publiquem e compartilhem pacotes Node.js junto com o código-fonte correspondente, sendo projetado para simplificar a instalação, atualização e desinstalação de pacotes.[27]

Em junho de 2011, a Microsoft e a Joyent implementaram uma versão nativa de Node.js para Windows.[29] A primeira versão do Node.js com suporte ao Windows foi lançada em julho de 2011.

Em janeiro de 2012, Dahl entregou a gestão do projeto ao criador do npm, Isaac Schlueter.[30] Em janeiro de 2014, Schlueter anunciou que Timothy J. Fontaine lideraria o projeto.[31]

Em dezembro de 2014, Fedor Indutny criou o io.js, um fork do Node.js criado devido à insatisfação com a governança da Joyent — como uma alternativa de governança aberta com um comitê técnico separado. O objetivo era permitir uma estrutura mais receptiva à contribuição da comunidade, incluindo a atualização do io.js com as versões mais recentes do mecanismo Google V8 JavaScript, divergindo da abordagem do Node.js na época.[32]

A Node.js Foundation, criada para reconciliar o Node.js e o io.js sob uma bandeira unificada, foi anunciada em fevereiro de 2015.[33]

A fusão foi concretizada em setembro de 2015, com o Node.js v0.12 e o io.js v3.3 se combinando no Node v4.0.[34]

Essa fusão trouxe recursos ES6 do V8 para o Node.js e iniciou um ciclo de lançamentos de suporte de longo prazo.[35] Em 2016, o site do io.js recomendava o retorno ao Node.js e anunciava que não haveria mais versões do io.js, encerrando efetivamente o fork e consolidando o sucesso da fusão.[36]

Em 2019, a JS Foundation e a Node.js Foundation se fundiram para formar a OpenJS Foundation.

Remove ads

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.[37]

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.

Remove ads

Vantagens de uso

Resumir
Perspectiva

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.[37]

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.[37] Um exemplo de uso é uma aplicação de troca de mensagens (conversa, bate-papo ou webchat).[37]

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;[37]

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;[37]

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.[37]

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. «Introduction to Node.js». Node.js. Consultado em 25 de novembro de 2022
  10. Geitgey, Adam (30 de outubro de 2013). «I-Tier: Dismantling the Monoliths». Groupon. Consultado em 30 de abril de 2014
  11. «IBM Bluemix». Consultado em 4 de julho de 2015
  12. «You'll never believe how LinkedIn built its new iPad app». VentureBeat. 2 de maio de 2012. Consultado em 10 de maio de 2012
  13. 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
  14. Node.js in Flames November 19, 2014
  15. «Clash of the Titans: Releasing the Kraken, NodeJS @paypal». fluentconf.com. 28 de maio de 2013. Consultado em 11 de setembro de 2013
  16. «SAP AppBuilder». SAP. 10 de março de 2014. Consultado em 10 de março de 2014
  17. «Why Walmart is using Node.js». VentureBeat. 24 de janeiro de 2012. Consultado em 10 de maio de 2012
  18. «About Node.js, and why you should add Node.js to your skill set?». Training.com. 11 de setembro de 2016. Consultado em 23 October 2016. Cópia arquivada em 1 April 2017 Verifique data em: |acessodata=, |arquivodata= (ajuda)
  19. Staff, CNET News (15 de outubro de 1996). «Netscape opens intranet attack». CNET (em inglês). Consultado em 20 de abril de 2017
  20. Ryan Dahl (9 de novembro de 2010). «Joyent and Node». Google Groups. Consultado em 5 de fevereiro de 2015
  21. [https://books.google.com/books?id=ZH6bpbcrlvYC&q=nodejs Professional Node.js: Building JavaScript Based Scalable Software], John Wiley & Sons, 01-Oct-2012
  22. «Earliest releases of npm». GitHub. Consultado em 27 July 2016 Verifique data em: |acessodata= (ajuda)
  23. Ryandahl (23 de junho de 2011). «Porting Node to Windows With Microsoft's Help». nodejs.org. Consultado em 17 April 2016 Verifique data em: |acessodata= (ajuda)
  24. Dahl, Ryan. «New gatekeeper». Consultado em 26 October 2013 line feed character character in |title= at position 4 (ajuda); Verifique data em: |acessodata= (ajuda)
  25. Schlueter, Isaac (15 January 2014). «The Next Phase of Node.js». Consultado em 21 January 2014 line feed character character in |title= at position 4 (ajuda); Verifique data em: |acessodata=, |data= (ajuda)
  26. «Node.js Foundation Advances Community Collaboration, Announces New Members and Ratified Technical Governance». Consultado em 4 July 2015. Cópia arquivada em 24 June 2015 line feed character character in |title= at position 8 (ajuda); line feed character character in |archive-date= at position 3 (ajuda); Verifique data em: |acessodata=, |arquivodata= (ajuda)
  27. «Node.js Foundation Combines Node.js and io.js Into Single Codebase in New Release». nodejs.org. 14 de setembro de 2015. Consultado em 28 January 2016 Verifique data em: |acessodata= (ajuda)
  28. «io.js and Node.js merge». medium.com. 19 May 2015. Consultado em 27 June 2015 Verifique data em: |acessodata=, |data= (ajuda)
  29. [https://iojs.org/en/ Io.js, JavaScript I/O], "io.js has merged with the Node.js project again. There won't be any further io.js releases. All of the features in io.js are available in Node.js v4 and above."
  30. 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
Remove ads

Ligações externas

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads