DEV Community

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

Posted on

4 1

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

SurveyJS custom survey software

JavaScript UI Libraries for Surveys and Forms

SurveyJS lets you build a JSON-based form management system that integrates with any backend, giving you full control over your data and no user limits. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more.

Learn more

Top comments (0)

Neon image

Next.js applications: Set up a Neon project in seconds

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Get started →

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay