<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pablo Henrique</title>
    <description>The latest articles on DEV Community by Pablo Henrique (@pablohdev).</description>
    <link>https://dev.to/pablohdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F370543%2Fbe5280c7-510f-4664-99e0-3071a5adb328.jpeg</url>
      <title>DEV Community: Pablo Henrique</title>
      <link>https://dev.to/pablohdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pablohdev"/>
    <language>en</language>
    <item>
      <title>Conheça a API Temporal. Datas em JavaScript sem dor de cabeça!</title>
      <dc:creator>Pablo Henrique</dc:creator>
      <pubDate>Thu, 24 Jul 2025 02:48:17 +0000</pubDate>
      <link>https://dev.to/pablohdev/datas-em-javascript-sem-dor-de-cabeca-conheca-a-api-temporal-3nn7</link>
      <guid>https://dev.to/pablohdev/datas-em-javascript-sem-dor-de-cabeca-conheca-a-api-temporal-3nn7</guid>
      <description>&lt;h2&gt;
  
  
  O jeito que a gente lida com datas: antes e depois do Temporal
&lt;/h2&gt;

&lt;p&gt;Sabe como é mexer com datas em JavaScript hoje, né? É quase um ritual: a gente primeiro lamenta ter que usar o objeto &lt;code&gt;Date&lt;/code&gt; e depois corre pra instalar uma biblioteca como &lt;code&gt;moment.js&lt;/code&gt; ou &lt;code&gt;date-fns&lt;/code&gt; pra não passar raiva.&lt;/p&gt;



&lt;h2&gt;
  
  
  Como a gente faz hoje (com bibliotecas)
&lt;/h2&gt;

&lt;p&gt;O problema do &lt;code&gt;Date&lt;/code&gt; nativo é que ele é &lt;strong&gt;mutável&lt;/strong&gt; (você altera o objeto original sem querer e cria bugs) e lidar com &lt;strong&gt;fusos horários&lt;/strong&gt; é um pesadelo. Então, o que a gente faz?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Exemplo com date-fns&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;addDays&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;format&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;date-fns&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hoje&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;addDays&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;hoje&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// A biblioteca cria um novo objeto pra gente&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dd/MM/yyyy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Funciona, claro. Bibliotecas como &lt;code&gt;moment.js&lt;/code&gt; e &lt;code&gt;date-fns&lt;/code&gt; são ótimas e resolvem o problema. Mas no fundo, a gente está adicionando uma &lt;strong&gt;dependência externa&lt;/strong&gt;, aumentando o tamanho do nosso projeto, só pra fazer uma coisa que deveria ser &lt;strong&gt;básica e nativa&lt;/strong&gt; da linguagem.&lt;/p&gt;



&lt;h2&gt;
  
  
  A promessa da API Temporal
&lt;/h2&gt;

&lt;p&gt;A API &lt;code&gt;Temporal&lt;/code&gt; vem sendo discutida e desenvolvida desde &lt;strong&gt;2017&lt;/strong&gt; dentro do comitê TC39, o grupo responsável pela evolução do JavaScript. Ela surgiu justamente para resolver as limitações e armadilhas da API &lt;code&gt;Date&lt;/code&gt;, que existe desde os primórdios da linguagem.&lt;/p&gt;

&lt;p&gt;Agora, &lt;strong&gt;em 2025&lt;/strong&gt;, a &lt;code&gt;Temporal&lt;/code&gt; finalmente está começando a aparecer nos navegadores para testes. Navegadores como &lt;strong&gt;Firefox&lt;/strong&gt; e versões experimentais do &lt;strong&gt;Chrome&lt;/strong&gt; já oferecem suporte parcial.&lt;/p&gt;



&lt;h2&gt;
  
  
  Como testar a API Temporal hoje
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Em navegadores:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Firefox&lt;/strong&gt; (a partir da versão 115+):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Acesse &lt;code&gt;about:config&lt;/code&gt; na barra de endereços.&lt;/li&gt;
&lt;li&gt;Procure por &lt;code&gt;javascript.options.temporal&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Altere o valor para &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Recarregue o navegador e abra o console para testar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Chrome&lt;/strong&gt; (Canary ou dev builds):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Execute com a flag: &lt;code&gt;--enable-features=Temporal&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Ou ative via &lt;code&gt;chrome://flags&lt;/code&gt; procurando por "Temporal".&lt;/li&gt;
&lt;/ol&gt;



&lt;h3&gt;
  
  
  Em Node.js:
&lt;/h3&gt;

&lt;p&gt;A API &lt;code&gt;Temporal&lt;/code&gt; já está disponível &lt;strong&gt;experimentalmente&lt;/strong&gt; a partir do &lt;strong&gt;Node.js v20.0.0&lt;/strong&gt;, mas você precisa ativar manualmente.&lt;/p&gt;

&lt;h4&gt;
  
  
  Como testar no Node:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Instale a versão 20+:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   nvm &lt;span class="nb"&gt;install &lt;/span&gt;20
   nvm use 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Execute seu script com a flag:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   node &lt;span class="nt"&gt;--experimental-temporal&lt;/span&gt; seu-script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo simples:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;   &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Temporal&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node:temporal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

   &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hoje&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Temporal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plainDateISO&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
   &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;hoje&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;days&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

   &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;h2&gt;
  
  
  Como vai ser com a API Temporal (o futuro nativo)
&lt;/h2&gt;

&lt;p&gt;A grande sacada é que ela foi pensada do zero pra resolver todas as nossas dores de cabeça. Com o &lt;code&gt;Temporal&lt;/code&gt;, o código vai ficar assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Exemplo com a futura API Temporal&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hoje&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Temporal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plainDateISO&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Pega a data de hoje, sem hora, sem fuso. Simples.&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;hoje&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;days&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt; &lt;span class="c1"&gt;// O método .add() retorna um NOVO objeto.&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;daquiUmaSemana&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// O formato já é inteligente por padrão.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Percebe a diferença? A lógica é muito mais clara e direta.&lt;/p&gt;

&lt;h2&gt;
  
  
  Os benefícios que o Temporal vai trazer pra gente
&lt;/h2&gt;

&lt;p&gt;Resumindo, as vantagens são enormes:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Imutabilidade por padrão&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
  Chega de bugs por alterar uma data sem querer. Toda operação (&lt;code&gt;.add()&lt;/code&gt;, &lt;code&gt;.subtract()&lt;/code&gt;) cria um novo objeto &lt;code&gt;Temporal&lt;/code&gt;, mantendo o original intacto. Isso deixa o código muito mais &lt;strong&gt;seguro e previsível&lt;/strong&gt;.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;API clara e específica&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
  Chega de confusão. Teremos objetos separados para cada necessidade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Temporal.PlainDate&lt;/code&gt; (só data)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Temporal.PlainTime&lt;/code&gt; (só hora)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Temporal.ZonedDateTime&lt;/code&gt; (data, hora e fuso horário)
Você usa exatamente o que precisa.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Fim do pânico com fuso horário&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
  Lidar com timezones finalmente vai ser algo &lt;strong&gt;simples e explícito&lt;/strong&gt;, diretamente na API, sem gambiarras.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Menos dependências&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
  Não vamos mais precisar instalar uma biblioteca pesada só para manipular datas. Isso significa projetos mais &lt;strong&gt;leves&lt;/strong&gt; e menos uma coisa pra se preocupar em atualizar.&lt;/p&gt;



&lt;p&gt;É basicamente a solução que a gente sempre quis, e o melhor: &lt;strong&gt;nativa no próprio JavaScript&lt;/strong&gt; e já disponível para quem quiser testar.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>api</category>
    </item>
    <item>
      <title>🚀 React Native 0.80 Chegou!</title>
      <dc:creator>Pablo Henrique</dc:creator>
      <pubDate>Mon, 23 Jun 2025 02:20:31 +0000</pubDate>
      <link>https://dev.to/pablohdev/react-native-080-chegou-2j4m</link>
      <guid>https://dev.to/pablohdev/react-native-080-chegou-2j4m</guid>
      <description>&lt;h1&gt;
  
  
  🚀 React Native 0.80 Chegou!
&lt;/h1&gt;

&lt;p&gt;Em 12 de junho de 2025, a equipe do React Native lançou a &lt;strong&gt;versão 0.80&lt;/strong&gt; com diversas melhorias importantes em performance, estabilidade e integração com o React 19.&lt;/p&gt;



&lt;h2&gt;
  
  
  🔧 Principais novidades
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔹 Integração com React 19.1.0
&lt;/h3&gt;

&lt;p&gt;O React Native agora usa por padrão o &lt;strong&gt;React 19.1.0&lt;/strong&gt;, com melhorias em performance e debugging (como melhores &lt;em&gt;owner stacks&lt;/em&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 API JavaScript mais estável
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deep imports depreciados&lt;/strong&gt;: imports do tipo &lt;code&gt;react-native/Libraries/...&lt;/code&gt; agora emitem avisos. Use apenas &lt;code&gt;import { X } from 'react-native'&lt;/code&gt; - A &lt;strong&gt;remoção completa está prevista para a versão 0.82&lt;/strong&gt; -.&lt;/li&gt;
&lt;li&gt;Nova API com &lt;strong&gt;tipagens TypeScript estritas&lt;/strong&gt;: ative usando &lt;code&gt;"react-native-strict-api"&lt;/code&gt; no &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧱 Congelamento da Legacy Architecture
&lt;/h3&gt;

&lt;p&gt;A arquitetura antiga do React Native está congelada e não receberá novos recursos. É hora de migrar para a nova arquitetura baseada em Fabric + TurboModules.&lt;/p&gt;



&lt;h2&gt;
  
  
  ⚙️ Otimizações de Performance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  iOS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pré-build experimental de dependências nativas.&lt;/li&gt;
&lt;li&gt;Resultados: builds iniciais até &lt;strong&gt;12% mais rápidos&lt;/strong&gt; (M4 Mac testado com &lt;code&gt;RCT_USE_RN_DEP=1&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Android
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Otimização interprocedural (IPO) ativada por padrão no Hermes.&lt;/li&gt;
&lt;li&gt;Resultados: redução média de &lt;strong&gt;1MB no tamanho do APK&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;



&lt;h2&gt;
  
  
  ⚠️ Última versão com suporte embutido ao JSC
&lt;/h2&gt;

&lt;p&gt;O JavaScriptCore (JSC) foi movido para o pacote separado &lt;code&gt;@react-native-community/javascriptcore&lt;/code&gt;. O foco principal seguirá com o &lt;strong&gt;Hermes&lt;/strong&gt;.&lt;/p&gt;



&lt;h2&gt;
  
  
  ✨ Outras mudanças
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Novo campo &lt;code&gt;"exports"&lt;/code&gt; no &lt;code&gt;package.json&lt;/code&gt; do &lt;code&gt;react-native&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Nova regra ESLint: &lt;code&gt;@react-native/no-deep-imports&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Expo SDK Canary já compatível (estável virá no SDK 54).&lt;/li&gt;
&lt;/ul&gt;






&lt;h2&gt;
  
  
  ✅ Recomendações para atualizar
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Rode &lt;code&gt;npx react-native upgrade&lt;/code&gt; ou atualize manualmente os pacotes.&lt;/li&gt;
&lt;li&gt;Remova todos os deep imports do seu código.&lt;/li&gt;
&lt;li&gt;Se usa TypeScript, ative a API estrita.&lt;/li&gt;
&lt;li&gt;Teste as otimizações nos builds para iOS e Android.&lt;/li&gt;
&lt;li&gt;Migre para Hermes se ainda usa JSC.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;📚 &lt;a href="https://reactnative.dev/blog/2025/06/12/react-native-0.80" rel="noopener noreferrer"&gt;Notas oficiais da versão 0.80&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>react</category>
    </item>
    <item>
      <title>Deno - O novo runtime JavaScript e TypeScript.</title>
      <dc:creator>Pablo Henrique</dc:creator>
      <pubDate>Sat, 16 May 2020 16:52:38 +0000</pubDate>
      <link>https://dev.to/pablohdev/deno-o-novo-runtime-javascript-e-typescript-3c27</link>
      <guid>https://dev.to/pablohdev/deno-o-novo-runtime-javascript-e-typescript-3c27</guid>
      <description>&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;p&gt;Veremos um exemplo simples apresentado em seu blog&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;     &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;serve&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://deno.land/std@0.50.0/http/server.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nf"&gt;serve&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8000&lt;/span&gt; &lt;span class="p"&gt;}))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;respond&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;     deno run example.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;     deno run &lt;span class="nt"&gt;--allow-net&lt;/span&gt; example.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Promises
&lt;/h1&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O Deno substituirá o Node?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Se quiser saber mais a fundo sobre o Deno, em seu site oficial tem muito conteúdo legal e exemplos de utilização. &lt;br&gt;
Link: &lt;a href="https://deno.land/v1" rel="noopener noreferrer"&gt;https://deno.land/v1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>deno</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
