<?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: Pedrini</title>
    <description>The latest articles on DEV Community by Pedrini (@damnpedrini).</description>
    <link>https://dev.to/damnpedrini</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%2F1144171%2F2919ccda-5c7e-4d18-a5ae-a2e472188e70.jpg</url>
      <title>DEV Community: Pedrini</title>
      <link>https://dev.to/damnpedrini</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/damnpedrini"/>
    <language>en</language>
    <item>
      <title>Swift vs. Outras Linguagens Móveis</title>
      <dc:creator>Pedrini</dc:creator>
      <pubDate>Sat, 11 May 2024 16:38:04 +0000</pubDate>
      <link>https://dev.to/damnpedrini/swift-vs-outras-linguagens-moveis-3706</link>
      <guid>https://dev.to/damnpedrini/swift-vs-outras-linguagens-moveis-3706</guid>
      <description>&lt;p&gt;Enquanto me preparava para o Fórum Acadêmico Internacional de Pesquisa, onde vou apresentar meu aplicativo Gaia’s Chat, desenvolvido com Swift, percebi que a escolha da linguagem de programação é crucial para garantir que os aplicativos sejam rápidos e eficientes. A experiência com Swift mostrou que ela é ideal para criar apps que não só funcionam bem, mas também oferecem uma ótima experiência para os usuários. &lt;br&gt;
Swift, a linguagem de programação da Apple. Mas como ela se compara a outras linguagens móveis, como JavaScript para desenvolvimento web e móvel?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compilação para Código Nativo&lt;/strong&gt;&lt;br&gt;
Swift é compilada diretamente para código nativo, permitindo que os aplicativos executem com a máxima eficiência no hardware da Apple. Isso contrasta com linguagens como JavaScript, que são interpretadas pelo motor JavaScript do navegador ou por um ambiente de execução como Node.js, o que pode introduzir uma sobrecarga adicional e potencial perda de desempenho em comparação com código nativo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gerenciamento de Memória&lt;/strong&gt;&lt;br&gt;
O gerenciamento de memória é crucial para o desempenho do aplicativo. Swift usa a contagem automática de referência (ARC), que gerencia a memória de forma mais previsível e eficiente do que os mecanismos de coleta de lixo típicos em ambientes JavaScript. Isso significa que os aplicativos Swift podem ter menos atrasos e um uso de memória mais otimizado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tipagem Estática vs. Dinâmica&lt;/strong&gt;&lt;br&gt;
Swift é uma linguagem de tipagem estática, o que significa que os tipos de variáveis são conhecidos em tempo de compilação. Isso permite que o compilador otimize o código para execução rápida. Em contraste, JavaScript é uma linguagem de tipagem dinâmica, o que significa que as verificações de tipo são feitas em tempo de execução, o que pode desacelerar o aplicativo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmarking: Swift vs. Javascript&lt;/strong&gt;&lt;br&gt;
Para determinar qual linguagem oferece melhor desempenho em um cenário prático, realizaremos um benchmarking entre Swift e JavaScript usando o algoritmo Bubble Sort. Analisaremos o tempo de execução de cada implementação do algoritmo em ambas as linguagens para determinar qual tem melhor desempenho em nosso contexto específico.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swift
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import Foundation

func bubbleSort(_ array: inout [Int]) {
    let n = array.count
    for i in 0..&amp;lt;n {
        for j in 0..&amp;lt;n-i-1 {
            if array[j] &amp;gt; array[j+1] {
                let temp = array[j]
                array[j] = array[j+1]
                array[j+1] = temp
            }
        }
    }
}

var arr = [64, 34, 25, 12, 22, 11, 90]
let startTime = DispatchTime.now()
bubbleSort(&amp;amp;arr)
let endTime = DispatchTime.now()
let elapsedTime = Double(endTime.uptimeNanoseconds - startTime.uptimeNanoseconds) / 1_000_000_000
print("Tempo de execução do Bubble Sort em Swift: \(elapsedTime) segundos")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Javascript
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function bubbleSort(arr) {
  let n = arr.length;
  let swapped;
  do {
    swapped = false;
    for (let i = 1; i &amp;lt; n; i++) {
      if (arr[i - 1] &amp;gt; arr[i]) {
        [arr[i - 1], arr[i]] = [arr[i], arr[i - 1]];
        swapped = true;
      }
    }
  } while (swapped);
}

const array = Array.from({ length: 1000 }, () =&amp;gt; Math.floor(Math.random() * 1000));
const start = performance.now();
bubbleSort(array);
const end = performance.now();
console.log(`Tempo de execução do Bubble Sort em JavaScript: ${(end - start) / 1000} segundos`);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com base nos resultados obtidos:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tempo de execução do Bubble Sort em Swift: 1.8075e-05 segundos&lt;br&gt;
Tempo de execução do Bubble Sort em JavaScript: 0.162246917 segundos&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Podemos observar que o Bubble Sort implementado em Swift teve um desempenho significativamente melhor em comparação com a implementação em JavaScript. Enquanto o tempo de execução em Swift foi da ordem de microssegundos, o tempo de execução em JavaScript foi da ordem de milissegundos. Isso sugere que, para este conjunto de dados e implementação específica do algoritmo, Swift apresentou uma performance superior em comparação com JavaScript.&lt;br&gt;
Uma linguagem nativa é aquela que é compilada diretamente para o código de máquina do dispositivo alvo, sem a necessidade de uma camada de abstração adicional.O desempenho superior do Bubble Sort em Swift em comparação com JavaScript é um exemplo dos benefícios de se utilizar uma linguagem nativa, como Swift, para desenvolvimento de aplicativos em dispositivos iOS. Essa otimização direcionada ao hardware e ao sistema operacional específicos pode resultar em uma melhor experiência do usuário e em aplicativos mais responsivos e eficientes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;br&gt;
Em cenários onde o tempo de resposta é crítico, como em sistemas de processamento de transações em tempo real ou aplicações que exigem processamento intensivo de dados, essa diferença pode ser crucial. A capacidade de executar operações mais rapidamente e com menor sobrecarga de memória pode levar a uma experiência do usuário mais fluida e a um uso mais eficiente dos recursos do sistema.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>ios</category>
      <category>swift</category>
    </item>
    <item>
      <title>Bun.js hype</title>
      <dc:creator>Pedrini</dc:creator>
      <pubDate>Fri, 15 Sep 2023 23:34:43 +0000</pubDate>
      <link>https://dev.to/damnpedrini/bunjs-hype-1mgg</link>
      <guid>https://dev.to/damnpedrini/bunjs-hype-1mgg</guid>
      <description>&lt;p&gt;In February 2023, the programming world witnessed the launch of Bun.js, a new web framework built on PHP. This innovation was warmly embraced by the PHP community, which saw in Bun.js a promising opportunity to rejuvenate the language and compete head-to-head with other renowned web frameworks like Node.js.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But what exactly is Bun.js?&lt;/strong&gt;&lt;br&gt;
Bun.js is essentially a PHP framework that stands out by offering a range of advantages over existing PHP frameworks. Its notable feature lies in the use of a more concise syntax, making the code more accessible for both writing and reading. Additionally, Bun.js adopts the event-driven programming model, which proves to be more efficient and scalable when compared to the traditional programming model. Another point in its favor is the robust ecosystem of libraries, simplifying the development of complex web applications for developers.&lt;/p&gt;

&lt;p&gt;Some enthusiastic proponents of Bun.js argue that this framework outperforms Node.js in terms of speed, security, and scalability. However, these claims have not yet been substantiated by independent testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But is Bun.js really the best web framework on the market?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The short answer is: not yet. Bun.js is undoubtedly a high-quality web framework, but as of the present moment, it is not superior to Node.js in all aspects.&lt;br&gt;
Node.js remains the preferred choice for many developers for various reasons. Furthermore, Node.js is single-threaded but utilizes an asynchronous event-driven model that makes it highly scalable. In contrast, Bun.js is multithreaded but does not exhibit the same efficiency as Node.js in high-traffic web applications. Additionally, Node.js benefits from a substantially broader ecosystem of libraries and tools, while Bun.js has a more limited set of libraries and tools.&lt;/p&gt;

&lt;p&gt;Node.js, anchored by the Google JavaScript V8 interpreter, is often favored for its speed. It is worth mentioning that there are already discussions in forums regarding the performance of Bun.js on Apple Chip devices, even when using JavaScriptCore, which is employed in Safari.&lt;/p&gt;

&lt;p&gt;In summary, Bun.js still stands out as an excellent option for PHP developers seeking a modern and user-friendly web framework. However, for complex or high-traffic web applications, Node.js remains the more prudent choice. The hype surrounding Bun.js reflects positively on the PHP community, showcasing a commitment to innovation and a desire to make the language more competitive. Nonetheless, it is crucial to maintain realistic expectations regarding Bun.js' capabilities.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>bunjs</category>
      <category>javascript</category>
      <category>newsletter</category>
    </item>
  </channel>
</rss>
