Deno v1.0.0 lançado para resolver falhas de design .js Node

O criador .js Node, Ryan Dahl, deixou o projeto Node.js em 2012 e começou a trabalhar com ele novamente cerca de seis anos depois.

Então ele decidiu criar uma nova implementação de sua ideia original: Deno, que lançou V1.0.0 na semana passada.

 

Desde sua criação, em 2009, a Node.js tornou-se uma das tecnologias web mais populares. Não foi o primeiro a permitir o processamento do JavaScript no lado do servidor — que foi o Rhino da Netscape em 1997 — sua pureza de foco na execução do JavaScript fora do navegador tornou-o incrivelmente popular. 

 

Você pode ver o porquê: usar a mesma linguagem no front-end e back-end simplifica as coisas. Você pode codificar o código frontal e o lado do servidor sem conhecer vários idiomas e, em seguida, reutilizar o código em ambos. Além disso, tem coleta de lixo, então não há confusão com o gerenciamento de memória ou qualquer uma das máquinas subjacentes. Crie seu código de lógica empresarial e deixe-a rasgar. Essa simplicidade de script é uma das razões pelas quais Python foi e continua sendo tão popular.  

 

Além disso, popularizou a programação orientada a eventos (mas realmente não facilitou) em uma época em que isso não era realmente prevalente. Nó.js só funciona quando é chamado. Ele recebe um pedido, dispara um retorno, e enquanto nada mais precisa correr, ele dorme. Um grande salto para suportar um grande número de usuários simultâneos assincronicamente. Não é à toa que tantos aplicativos web grandes usá-lo. 

 

Mas isso foi há 11 anos, e em termos de computação, isso é antigo. Embora o ecossistema .js Node tenha crescido para produzir um grande número de bibliotecas — há mais de um milhão só no NPM — é baseado em uma tecnologia que passou por 11 anos de crescimento incrível. Houve hack-arounds, mas eles ainda são imperfeitos.

 

O criador .js Node, Ryan Dahl, deixou o projeto Node.js em 2012 e começou a trabalhar com ele novamente cerca de seis anos depois. Ao usá-lo novamente, ele encontrou uma série de falhas de design que o incomodavam. Em uma apresentação da JSConf NA UE de 2018,ele disse: "Os bugs nunca são tão óbvios como quando você é o responsável por eles". Então ele decidiu criar uma nova implementação de sua ideia original: Deno. Com o lançamento de Deno v1 na semana passada, essa nova versão está disponível para todos.

 

Por que você precisaria de um novo tempo de execução JavaScript autônomo quando o Node.js funciona perfeitamente bem? Bem, continue lendo, e vamos cobrir as principais mudanças, bem como o que elas significam para os desenvolvedores.

 

Qual é a diferença entre Deno e Node?

 

Como o Node, o Deno opera principalmente em uma interface de linha de comando, o que facilita a chamada de outros programas. É construído em Rust para ser rápido e inclui uma API plugin. Deno foi projetado para ser uma série de caixas de ferrugem, com deno_core como o tempo primário de execução de ossos nus. Outra caixa fornece vinculações à API JavaScript V8 C++.. Então, se outra versão do JavaScript suplantar V8, tudo o que Deno precisa fazer é fornecer uma nova caixa.

 

Para muitos, o recurso assassino incluído em Deno será o suporte nativo para TypeScript. O TypeScript teve um enorme impacto na paisagem JavaScript, mas ele tem que ser transpilado em JavaScript para aproveitar sua digitação mais forte e outros recursos. Mas com Deno, TypeScript agora é uma língua de primeira classe. Você pode poupar-se da dor de depurar erros do tipo sem se preocupar com uma cadeia de construção complexa.

 

O TypeScript aumentou em popularidade recentemente,em grande parte devido à manutenção e depuração mais fáceis que vem de uma linguagem estaticamente digitada, mas também por causa de sua adoção por estruturas front-end populares como Angular e React. Ao dar o passo de construção, Deno tira mais uma razão para não mudar para TypeScript.

 

Para uma tecnologia construída para eventos, Node.js não fez um grande trabalho com eles. Ele saiu antes dos conceitos de Promises ou os padrões async/await, então teve que chegar a sua própria versão. No início de 2009, Node.js realmente tinha uma versão da abstração das promessas, mas foi removida em 2010. Em vez disso, foi com o padrão EventEmitter A menos que você explicitamente chamado pause(), quaisquer tomadas TCP abertas jogaram eventos em você sem parar, potencialmente afogando uma aplicação parada.

 

Deno inverte isso. Em vez de parar explicitamente o fluxo das tomadas, você tem que ler explicitamente deles. Eles ainda operam assincronicamente, mas não constantemente. Combine isso com Futures, uma abstração semelhante a promessas incorporada em Rust, e você pode gerenciar eventos recebidos muito mais fácil.

 

Mas nenhuma peça de tecnologia web é uma ilha nos dias de hoje, e Deno — como o Node.js — suportará um vasto ecossistema de módulos e dependências. Node.js fez isso com npm, mas embora tivesse um repositório central com npm, não foi capaz de evitar maus atores. Recentemente, alguns pacotes outrora úteis atualizaram e escorregaram em código malicioso, expondo as dificuldades em atualizações automáticas.

 

Deno tem recebido algumas críticas sobre como eles gerenciam dependências. Em vez de encaminhá-los através de um gerenciador de pacotes, o Deno especifica cada módulo de dependência como uma URL simples. Você não tem mais a proteção de um gerente central, mas não há garantia de que este repositório forneça mais proteção do que um link direto para esse código.

 

Como qualquer navegador moderno, o Deno executa todo o código em uma caixa de areia; ele não pode acessar o disco rígido, conexões de rede ou periféricos de I/O sem permissões explícitas. Qualquer código deve ser executado com uma bandeira que permita atividades não-sandbox. E as permissões são granulares — você pode conceder acesso a um único disco rígido ou localização de rede.

 

Dahl deixa claro que esta não é uma continuação de Nó; É um projeto totalmente novo. Como tal, atualmente não se encaixa com o ecossistema .js nó existente. A maioria dos pacotes não funciona e o tooling é incompatível. Isso pode afastar as pessoas por enquanto, mas como Paul Ford disse em nosso podcast: "Eu não estou mais sangrando, mas se você me dissesse que daqui a um ano eu estou baixando para Deno em vez de Node e usando suas abordagens de gerenciamento de pacotes em vez de npm mais, eu não ficaria surpreso."

 

Se este é um divisor de águas para aplicativos web ou uma atualização útil que não recebe sua base deve ser vista. Mas à primeira vista, ele poderia fazer os avanços mais recentes para javaScript (como TypeScript) procedimento padrão em código lateral do servidor.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 بلاگ پوسٹس

تبصرے