Saltar para o conteúdo

Node.js

Origem: Wikipédia, a enciclopédia livre.
Node.js
Autor Ryan Dahl
Desenvolvedor Node.js Developers, Linux Foundation
Lançamento 27 de maio de 2009 (16 anos)[1]
Versão estável 16.2.0[2] (19 de maio de 2021; há 4 anos)
Escrito em C, C++, JavaScript
Sistema operacional OS X, Linux, Solaris, FreeBSD, OpenBSD, Microsoft Windows (older versions require Cygwin), webOS
Gênero(s) Event-driven networking
Licença MIT[3]
Estado do desenvolvimento Corrente
Página oficial http://www.nodejs.org

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.[4][5]

O runtime de JavaScript é constituído pelos seguintes comandos: node package manage (npm), e npx (node package extractor); onde o primeiro tem o propósito de executar código armazenado num package de nodejs, instalando o software globalmente ou localmente, já o segundo tem o propósito de instalar a nível local o código instalado globalmente. Um exemplo disso é o npx create-react-app que tem como propósito instalar a nível local um template vazio de um site de react, pronto a ser usado, através de uma fórmula instalada com npm.

A tecnologia robusta C++ e boost, como era conhecido no final da década de 1990 (quando a sintaxe foi completamente alterada, mantendo-se para fins de compatibilidade backward). Usando também recorrentemente para este fim a linguagem bindings com sistemas de JavaScript mais universais, garantindo que há o mínimo de deprecações no código com o passar do tempo. Exceções disso, são alguns de JavaScript vanilla, que não são incluídos em node, que podem ser importados para nodejs. Um exemplo disso é o comando readine(), que precisa de ser importado e sofre de algumas alterações. Ainda assim o código é bem mais buletproof do que o código de Python, que depreca com relativa facilidade.

O código de nodejs é baseado na arquitetura event-driven, capaz de entrada/saída assíncrona. Otimizado para ser corrido em tempo real tratando-se também de um ditribuído.

Histórico

Ryan Dahl, Criador do Node.js

Ryan Dahl se inspirou para criar Node.js depois de ver barra de progresso de upload 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.[6]

Vantagens de uso

Flexibilidade

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

Leveza

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

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ível gratuitamente para uso em grupo;[6]

Mesma linguagem no frontend e backend, que pode representar ganhos de reuso de código e criação de equipes multidisciplinares, reaproveitando recursos;[6]

A possibilidade de deploys 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.[6]

Veja 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 2021-05-19, Version 16.2.0 (Current)». Github (em inglês). 19 de maio de 2021. Consultado em 22 de maio de 2021 
  3. «node/LICENSE at master». GitHub (em inglês). Consultado em 22 de maio de 2021 
  4. «node/README.md at master». Github (em inglês). Consultado em 22 de maio de 2021 
  5. «Home | Node.js». Node.js (em inglês). Consultado em 22 de maio de 2021 
  6. 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

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.