DEV Community

Cover image for Já ouviu falar no Deno?
Ítalo Sousa
Ítalo Sousa

Posted on • Edited on

Já ouviu falar no Deno?

Deno é um simples, moderno e seguro ambiente de execução de JavaScript e TypeScript que usa a V8 e é feito em Rust. - Página oficial

O runtime foi criado por Ryan Dahl, criador do famoso Node.js. Durante sua palestra na JSConf EU 2018, que tinha como título: "10 Coisas Que Lamento Pelo Node.js", ele anunciou o seu novo projeto: o Deno.

Se você conhece o Node, o Deno é praticamente a mesma coisa, só que com algumas melhorias. Ambos possuem a mesma proposta: ser uma plataforma para rodar JavaScript, no caso do Deno TypeScript também, no lado do servidor.

Principais Características

Photo by Evgeni Tcherkasski on Unsplash

Um dos pontos fortes do Deno é sua prioridade em questão da segurança. Por default, o runtime precisa que as permissões sejam dadas de forma explícitas. O que pode parecer estranho para quem não está acostumado rodar um programa com tantas flags.

Como padrão, o Deno possui um compilador de TypeScript, não sendo necessária nenhuma configuração a mais. Isso traz uma facilidade para a adoção dessa linguagem que sempre requer um trabalho adicional na configuração do ambiente.

Consigo, o Deno já traz algumas ferramentas padrão. O runtime já vem com uma ferramenta de teste unitário, um formatador de código e uma ferramenta de linting. Não sendo necessário a instalação de ferramentas adicionais para esse tipo de tarefa.

Breve comparação com o Node

Photo by James Pond on Unsplash

O Deno, assim como seu irmão mais velho, utilizam a mesma Engine V8, construída pelo Google e que está presente no Chrome. Além disso, as duas plataformas rodam JavaScript.

As diferenças começam já porque no Deno não existe um package manager, ou seja, nada de npm. As bibliotecas passaram a ser gerenciadas através de URLs ou mesmo caminhos de arquivos. Consequentemente, o Deno não usa um arquivo de configuração, como o package.json, para poder resolver suas dependências.

O novo runtimer utiliza features do EcmaScript mais atual para poder resolver seus pacotes. Para importar uma biblioteca ou mesmo um outro módulo, utilizaremos o import.

Outra diferença interessante, é que o Deno precisa de permissões explícitas, o que pode lhe parecer estranho no começo. Portanto, quando o programa que formos executar precisar acessar um arquivo do sistema, variável de ambiente ou mesmo acesso à internet, precisaremos requisitá-las de forma explícita.

Demo

Photo by Nicolas Hoizey on Unsplash

Para instalar o Deno é super simples, basta a execução de uma linha de comando:

$ curl -fsSL https://deno.land/x/install/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

Para saber se está tudo ok rode o --version. Se tudo estiver ok, a saída será algo como isso:

$ deno --version
deno 1.0.0
v8 8.4.300
typescript 3.9.2
Enter fullscreen mode Exit fullscreen mode

O programa mais simples que podemos rodar é o hello world do próprio Deno:

$ deno run https://deno.land/std/examples/welcome.ts
Welcome to Deno 🦕
Enter fullscreen mode Exit fullscreen mode

E para escrever o nosso é tão simples como o exemplo deles. Primeiro vamos criar um arquivo chamado index.js e escrever a seguinte linha de código:

console.log('hello world, Deno');
Enter fullscreen mode Exit fullscreen mode

Então podemos rodar com o seguinte comando:

$ deno run index.js
hello world, Deno
Enter fullscreen mode Exit fullscreen mode

Simples assim 😎

Opinião

O Deno trás uma nova alternativa para o tão adotado Node.js. Vejo de certa forma um bom potencial para crescer, principalmente se for bem adotado pela comunidade de TypeScript. Quanto em utilizar em ambiente de produção, acredito que ainda existe um caminho para ser traçado. O runtime ainda precisa conquistar o coração das grande provedores de cloud para poder ser adotado em larga escala.

Top comments (2)

Collapse
 
moraesjeremias profile image
Jeremias Moraes

Nem full Deno!

Hahahaha
Brincadeiras a parte é realmente muito interessante o Deno traer a abordagem de security first e melhor gerenciamento de pacotes.

Vamos esperar o amadurecimento da plataforma e comunidade, espero que demonstre seu valor ao longo dos anos!

Collapse
 
anditsou profile image
Ítalo Sousa

A comunidade vem se mostrando bastante ativa. Existe um grupo brasileiro buscando as formas de traduzir o material oficial, comunidade nascendo e por aí vai. Sem falar que o runtime está sendo sempre atualizado.