Porque o Node.js está fazendo tanto barulho?

Oi Pessoal,

outro dia estava conversando com um amigo sobre Node.js e porque se fala tanto dele. O papo foi bom. :) Segue um resumo... Em linhas gerais o Node é um middleware para desenvolvimento Javascript no back-end, construído sobre a engine V8 do Google Chrome e tem boa performance com consumo de memória e de CPU eficientes em função da implementação baseada em uma arquitetura de processamento assíncrono non-blocking. A diferença é que nos servidores web e de aplicação tradicionais, cada thread faz suas operações de I/O de maneira síncrona e isso "bloqueia" o processamento enquanto esse "I/O" está sendo executado. No Node.js todo o processamento é assíncrono baseado em Callbacks, da mesma forma que o processamento do Javascript client-side, mas para eventos do servidor ao invés de eventos de tela.

Alguém pode falar mais e compartilhar algum case bacana de uso de Node.js?

Exibições: 581

Comentar

Você precisa ser um membro de PanGea para adicionar comentários!

Entrar em PanGea

Comentário de Christiano Teixeira em 24 abril 2015 às 17:36

Pois é, esse parece ser o maior argumento do Nodejs hoje. Até para ter uma ideia de mercado, tem uma outra pesquisa da stackoverflow com uma visão geral do desenvolvimento em 2015: http://stackoverflow.com/research/developer-survey-2015

Comentário de Adriano Tavares em 23 abril 2015 às 23:23

Bacana a pesquisa Christiano!

Desempenho foi o principal motivo de uso do Node. Uma frase que chamou a minha atenção...  

"Developers are using Node.js because it's insanely fast" 

:)

Comentário de Christiano Teixeira em 23 abril 2015 às 16:01

Não é bem um case, mas é uma visão geral do node esse ano com base no resultado de uma pesquisa:

http://blog.risingstack.com/what-is-nodejs-used-for-the-2015-nodejs...

Comentário de Adriano Tavares em 22 abril 2015 às 0:19

Oi Daniel,

muito bom esse artigo para convencer o chefe. Legal mesmo! :) 

Comentário de Adriano Tavares em 22 abril 2015 às 0:14

Interessante esse lado sociológico da migração do desenvolvedor front-end para full-stack que você descreveu Henrique. Concordo que isso é "puxado" pela linguagem e fica confortável para os DEVs Javascript escreverem também no servidor. Faz todo sentido! A evolução vem vindo de forma consistente tanto no mundo Java quanto no ambiente Microsoft.   

Sobre o ceticismo dos desenvolvedores Java sobre a pilha Javascript full-stack eu acho que é um choque cultural até! :) Bom, as tecnologias para assincronismo já estão disponíveis mesmo, mas o modelo mental de desenvolvimento com uma arquitetura assíncrona não é difundido. Só se pensa nisso em cenários de integração quando o cenário é crítico quanto a falhas, desempenho e escalabilidade, no geral é tudo síncrono e blocante com Java.

Um case bacana de uso do Node que acho uma ferramenta promissora é o Cloud9 IDE (https://c9.io). É um IDE todo desenvolvido em Javascript com Node.js no back-end.   

Comentário de Daniel Fernandes Silva em 21 abril 2015 às 23:56

Olá, Adriano.

Basicamente o Node.js é isso mesmo que você mencionou, mas você também pode fazer operações síncronas. O fato da linguagem ser o JavaScript não chega a ser um impeditivo para se construir um bom software, que ao meu ver é um atributo que está muito mais relacionado ao projeto em si e sua arquitetura. Mesmo assim, tem casos que o Node.js não é aplicável.

Minhas considerações e experiências sobre a tecnologia (aplicadas ao contexto do meu time):

  • Acho mais simples e mais rápido desenvolver e integrar continuamente um projeto em Node.js.
  • O time aprende rápido.
  • Tem bastante pacotes úteis pra equipar o seu projeto (https://www.npmjs.com/).

Por fim, tem um texto muito interessante aqui.

Comentário de Henrique Lobo Weissmann em 21 abril 2015 às 21:16

Oi Adriano, seguem meus "two cents" sobre a questão.

Na realidade, é interessante observar que já faz um bom tempo (se bobear, até um pouco mais) que temos algo similar no próprio Java EE que são as chamadas assíncronas (Java EE 6) (2009), e ainda temos alguns outros projetos como o Vert.x (2011). Interessante que vemos um germe deste tipo de funcionalidade no Java EE 5 com as invocações assíncronas do EJB.

O Node.js vai aparecer pela primeira vez com força em 2009, junto com o Java EE 6, e realmente gera um estardalhaço imenso, por que pela primeira vez (não necessáriamente) vemos, mais do que toda esta história de assíncronicidade, o uso do JavaScript de forma relevante do lado servidor.

Neste ponto entra a minha teoria que talvez explique o tamanho do barulho que se tem feito a respeito. Eu não tenho dados pra comprovar, e tudo o que vou dizer daqui pra frente é baseado apenas na minha experiência lidando com outros programadores, ok? Lá vai.

De repente o pessoal que ficava apenas no front-end ganhou o servidor. E com este ganho, vêm o deslumbramento natural com a coisa. Mais do que isto: este profissional acaba sendo valorizado. Se você observar com atenção, vai ver que é a partir de 2009 que vamos começar a ver termos como "programador/desenvolvedor fullstack" no mercado. Até então tinhamos muito o sujeito do frontend (que era extremamente desvalorizado) e o do backend (bem mais valorizado).

Daí surge tantos artigos e animação com a tecnologia (se você for reparar nos artigos publicados, vai ver que poucos na realidade falam sobre a questão do processamento assíncrono). Muita gente que vi, vêm de um background de agências de comunicação. São pessoas que se comunicam melhor, em grande parte, devido ao próprio ambiente no qual se encontram.

Este é o fator "sociológico" que observei.

De cases, na minha vivência o que mais tenho gostado nem é o que mando para o servidor, mas o ferramental. De repente surgiu uma pletora de ferramentas excelentes para o desenvolvedor frontend: Grunt, o próprio NPM e todas aqueles frameworks de teste. Estamos vendo o pessoal do frontend tirando proveito de coisas que o pessoal do Java usava em seu dia a dia e não se dava conta: integração e implantação contínua, gestão de dependências de uma forma mais eficiente, etc.

O lado negativo desta história é que de repente as pessoas parecem ter se esquecido que até bem pouco tempo atrás JavaScript era uma linguagem bastante criticada. Este esquecimento na minha opinião é o mais complicado, pois todo deslumbramento acaba se mostrando uma armadilha pronta pra nos abocanhar.

Experimentei um pouco com o Node.js em alguns projetos internos da itexto e a experiência foi bastante interessante.

Evento TDC2016

Badge

Carregando...

© 2017   Criado por Adriano Tavares.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço