DEV Community

Cover image for Deno - O novo runtime JavaScript e TypeScript.
Pablo Henrique
Pablo Henrique

Posted on

Deno - O novo runtime JavaScript e TypeScript.

Desde o final de 2018, Ryan Dahl, criador do Node.js, trabalha na construção de um novo runtime JavaScript. Apesar de ser criado pelo mesmo criador do Node.js e a semelhança no nome (node ao contrário), o Deno foi construído do zero com implementações totalmente novas.

No dia 13/05/2020 foi anunciado oficialmente por Ryan Dahl, Bert Belder, e Bartek Iwańczuk a versão 1.0 do Deno, e explicando qual a razão que levaram a criação desse novo runtime.

E um dos pontos que valem ressaltar é que o Deno da total suporte a TypeScript de forma nativa, sem precisar de outra solução(como um pré compilador para converter o TypeScript em JavaScrypt assim como acontece no node).

Veremos um exemplo simples apresentado em seu blog

     import { serve } from "https://deno.land/std@0.50.0/http/server.ts";

     for await (const req of serve({ port: 8000 })) {
         req.respond({ body: "Hello World\n" });
     }

Neste exemplo é importado um módulo completo do servidor HTTP, e não é necessário nenhum arquivo de configuração adicional e nem instalação a ser feita, basta com um único comando para que seja executado

     deno run example.js

Um ponto bem destacado já no título do site oficial é "Um runtime seguro", isso porque ele é executado como nos navegadores, executado em uma "caixa" de proteção segura sendo assim os scripts não podem acessar o disco rígido, abrir conexões de rede ou executar outras ações potencialmente maliciosas sem permissão. Os navegadores, por exemplo, fornecem APIs para cessar câmera e microfones, mas os usuários devem primeiro dar a permissão. O Deno fornece comportamento análogo no terminal. O exemplo acima falhará, a menos que passemos junto ao comando o --allow-net.

     deno run --allow-net example.js

Promises

No Deno, os soquetes ainda são assíncronos, mas o recebimento de novos dados exige que os usuários o expliquem explicitamente com 'read()'. Nenhuma semântica de pausa extra é necessária para estruturar adequadamente um soquete de recebimento. Isso não é exclusivo para soquetes TCP. A camada de ligação de nível mais baixo do sistema está fundamentalmente ligada às promessas - chamamos essas ligações de "ops". Todos os retornos de chamada em Deno, de uma forma ou de outra, surgem de promessas.

Nestas primeiras impressões o Deno se mostra muito performático e inovador com o suporte nativo de typescript, mas ainda é muito cedo para podermos a utilizar em produção, mas já é uma boa opção de se ir acompanhando e estudando sobre, e dai fica a pergunta.

O Deno substituirá o Node?

Se quiser saber mais a fundo sobre o Deno, em seu site oficial tem muito conteúdo legal e exemplos de utilização.
Link: https://deno.land/v1

Deixei nos comentários o que achou desta publicação e ideias para os próximos, um grande abraço

Top comments (0)