How Node.js está lidando com o desafio do Deno de Ryan Dahl
nó.js, o software de código aberto JavaScript runtime, lançou sua 15ª versão na semana passada. Agora no seu 11º ano, Nodo.a js é tão popular como sempre, mas em 2020 surgiu um competidor de vanguarda. Deno, um runtime JavaScript de código aberto lançado em maio, foi criado por nenhum outro, além de Ryan Dahl — o autor original do Node.js. Ainda pior do que ter um concorrente que conhece o seu produto de dentro para fora, Deno foi criado especificamente para corrigir o que Dahl percebia como as principais fraquezas do nó.js-incluindo questões de segurança, uso de um sistema de repositório centralizado (MPN), e “ferramentas pesadas”.”
para descobrir como a geração atual do nó.os mantenedores da js estão a lidar com o novo challenger — e, por extensão, o que estão a fazer para responder às críticas da da Dahl — entrevistei Bethany Griggs, uma engenheira de Software Sénior da Red Hat e um nó.membro do Comité Técnico Director do js. O Griggs esteve envolvido no nó.projeto js desde 2016, principalmente com o nó.js Release Working Group.
nó.o js permite aos programadores executar o código de JavaScript fora de um navegador web. Seu objetivo original era criar páginas web dinâmicas em um servidor, antes de enviar para o navegador; o que significa que o código JavaScript foi executado do lado do servidor, ao invés do cliente. Mais genericamente, nó.js tornou-se o padrão para a programação web backend (enquanto os gostos de Reat e Angular são usados para a interface). A ideia é que os desenvolvedores podem usar a mesma linguagem, JavaScript, tanto para infra-estrutura como frontend.
nó.js também é altamente escalável e tem um modelo de programação orientado a eventos, ambos os quais fizeram dele um bom ajuste para aplicações nativas da nuvem.nó
“.js continua a ser um dos principais períodos de execução para a construção de micro-serviços nativos da nuvem e aplicações de infra-estrutura”, disse Griggs. Ela acrescentou que ” é também popular para projetos da IoT — um dos meus exemplos favoritos é a NASA usando Node.js para monitorizar dados do fato espacial.”Spacesuits after, Node.js não é mais visto como a nova coisa quente do desenvolvimento JavaScript (Next.js, um framework frontend React, talvez tenha tomado esse manto). E comparado com a natureza de vanguarda de Deno — por exemplo, Deno foi escrito na nova linguagem de programação moderna, Rust — o nó.o projeto js segue um caminho de desenvolvimento relativamente conservador hoje em dia. Então não é surpresa que a versão 15 do Node.js é uma atualização incremental.
Griggs citou “atirar por padrão em rejeições sem cartas” como sendo a atualização mais significativa em v15. Isso significa que os desenvolvedores podem agora obter ” feedback precoce de que eles estão omitindo o tratamento de um erro em sua aplicação.”Uma atualização técnica valiosa, sem dúvida, mas não susceptível de gerar uma discussão entusiástica no Twitter técnico.
respondendo às críticas de Ryan Dahl
o que eu estava mais curioso sobre, era se o nó.a equipa do projecto js empreendeu quaisquer novos desenvolvimentos, ou correcções, para dar resposta a algumas das preocupações que o Ryan Dahl levantou nos últimos dois anos?há alguns anos, Dahl fez uma apresentação sobre os seus arrependimentos depois de criar o nó.js. Um dos principais foi que ele não fez o tempo de execução tão seguro quanto ele poderia ter — algo que ele abordou ao criar Deno, que é promovido como sendo “seguro por padrão.”A abordagem de Deno à segurança é colocar trilhos de segurança em torno do acesso aos dados; como descrito em seu manual,” Deno requer permissões explícitas para acesso a arquivos, redes e meio ambiente.”
Ryan Dahl em JSConf UE 2018.
diplomaticamente, Griggs me disse que nó.js vai “ter inspiração de” Deno sobre esta e outras questões. No entanto, ela disse que o nó.js project ” tem tido uma história de discussões sobre a aplicação da segurança e a limitação do acesso às APIs antes de Deno ser anunciado. Ela apontou para alguns “recursos experimentais” para segurança (exemplo 1, Exemplo 2).
também, Griggs não está convencido de que a primeira abordagem de segurança de Deno para o acesso é certa para o nó.js. “Para aplicações práticas”, disse ela, ” você rapidamente teria que recuar para a concessão de acesso a muitas API, de modo que o valor líquido versus complexidade seria baixo.”
embora haja interesse entre o nó.js project team in experimenting with stronger security features, according to Griggs ” there has not been a compelling case to adopt all of the same tradeoffs as Deno.”
As for Dahl’s criticism of npm as a closed ecosystem for modules, Griggs sees no reason for Node.js para mudar isso.
” no que diz respeito a como os módulos são gerenciados, o ecossistema do módulo tem sido uma grande parte do sucesso do nó.js. Enquanto há discussões em curso sobre a integração de clientes — os registros que servem módulos — o foco principal tem sido a adição de suporte para módulos ES6, em vez de mudar a forma como eles são gerenciados.”
ao invés de usar npm, Deno optou por usar módulos referenciados como URLs ou caminhos de arquivos.
JavaScript servidor-lado ainda vai Forte
com a popularidade atual de frameworks JavaScript como Next.js e Gatsby, juntamente com a ascensão do Jamstack e a sua abordagem de geração de site estático, perguntei ao Griggs se isso impactou os casos de uso para JavaScript servidor-lado?
“There may be a reduction in the use of things like templating engines for server-side rendering, “she said,” but Node.js ainda é usado pesadamente para construir os microservices que recuam as páginas estáticas que podem ser implantadas usando abordagens como Jamstack. No.js também continua a ser fortemente usado nas ferramentas que compõem os dutos de desenvolvimento para JavaScript do lado do cliente.”
Os Futuros do nó.js and Deno
So what’s next for Node.js? No anúncio post sobre a versão 15, Griggs escreveu que depois de comemorar o décimo aniversário do Node.js ano passado, “o projeto começou nos próximos 10 anos de nó.js esforço. “
perguntei a Griggs que tipo de iniciativas os membros do projeto estão procurando implementar ao longo da próxima década?
” até agora definimos as nossas prioridades como experiência de desenvolvimento, estabilidade, qualidades operacionais, nó.js maintainer experience, and up-to-date technology and APIs”, ela respondeu.
estes estão atualmente delineados em um documento do GitHub intitulado valores e prioridades. A segurança é mencionada uma vez, como uma sub-categoria de “qualidades operacionais”, e afirma simplesmente: “abordando vulnerabilidades de segurança de uma forma responsável.”
It doesn’t seem like a high-bar goal for the next decade, especially compared to Deno’s more ambicious goal of trying to avoid vulnerabilities in the first place.
mas desde o nó.js é um projeto estável e relativamente de longa duração, e atende a alguns grandes fornecedores de software corporativo (como o empregador de Grigg, Red Hat), você não pode culpar os mantenedores por serem conservadores. Embora deixe uma abertura para outros para pensar maior e mais ousado sobre o futuro do JavaScript servidor-que é exatamente o que Dahl e seu projeto Deno estão fazendo.
Red Hat é um patrocinador da nova pilha.
imagem característica via .