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 12.18.1 (LTS) (17 de junho de 2020; 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
Estado do desenvolvimento Corrente
Página oficial http://www.nodejs.org

Node.js trata-se de um software open-source, cross-platform, e de um runtime de JavaScript JavaScript que execute código de JavaScript a nível backend e frontend (dependendo apenas das bibliotecas e dos frameworks usados para esse mesmo fim). O runtime de JavaScript é constituído pelos seguintes commandos - node package manage (npm), e npx (node package extractor). Tudo isto é escrito em C++ e boost com paralelização, resultando numa tecnologia opensource bem mais robusta do que JavaScript, tal como o conhecia-mos no final dos anos 90, inícios da década de 2000 (aliás a própria sintaxe foi completamente alterada desde então, se bem que mantém-se bem trabalhado para fins de backward compability). Node.js usa recorrentemente language bindings com sistemas de JavaScript mais universais, de modo a permitir, efetivamente backwards compability, e garantirmos-nos 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 mas que fazem parte de JavaScript vanilla, e 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 em event-driven architecture sendo capaz de asynchronous I/O. O código de node.js é optimizado para ser corrido em tempo realm tratando-se também de um ditribuído. 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# 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.[1]

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

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

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

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

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

Veja também

Referências

  1. 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