Saltar para o conteúdo

Node.js

Origem: Wikipédia, a enciclopédia livre.
node.js
Autor Ryan Dahl
Desenvolvedor Node.js Developers, Joyent, Github Contributors
Lançamento 27 de maio de 2009 (16 anos)
Versão estável 10.14.1 (LTS) (29 de novembro de 2018; há 6 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
Estado do desenvolvimento Corrente
Página oficial http://www.nodejs.org

Node.js é um interpretador de JavaScript assíncrono com código aberto orientado a eventos, criado por Ryan Dahl em 2009, focado em migrar a programação do Javascript do cliente (frontend) para os servidores, criando aplicações de alta escalabilidade (como um servidor web)[1], manipulando milhares de conexões/eventos simultâneas em tempo real numa única máquina física.[2]

O Node.js (ambiente de execução Javascript no servidor) foi implementado baseado no interpretador V8 JavaScript Engine (interpretador de JavaScript em C++ com código aberto do Google, utilizado no Chrome), com desenvolvimento mantido pela fundação Node.js em parceria com a Linux Foundation.

Histórico

Ryan Dahl, Criador do Node.js

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#) é 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.[3]

Vantagens de uso

Flexibilidade

O Node.js possui o gerenciador de pacotes reusáveis NPM (Node Package Manager), o maior repositório de softwares, 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.[3]

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.[3] Um exemplo de uso é uma aplicação de conversa/bate papo (webchat).[3]

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

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

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

Onde Aprender

Veja também

Referências

  1. Wait, What's Node.js Good for Again? Arquivado em 14 de outubro de 2012, no Wayback Machine., By Klint Finley, January 25, 2011, ReadWriteHack
  2. Node is a server-side JavaScript interpreter that changes the notion of how a server should work
  3. 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