DEV Community

Cover image for O Futuro do Desenvolvimento Web: Node.js vs Bun
Fran Borges
Fran Borges

Posted on

41 26 27 26 27

O Futuro do Desenvolvimento Web: Node.js vs Bun

 

Introdução

Este artigo apresentará a análise e o impacto de um dos lançamentos mais comentados no mundo da tecnologia no último mês, conhecido como Bun. Desde seu lançamento, o Bun tem gerado grande entusiasmo e levantado questionamentos sobre como ele pode potencialmente desafiar a posição do Node.js como uma das principais plataformas de execução de JavaScript. Neste artigo, exploraremos as razões por trás desse entusiasmo, bem como os aspectos em que o Bun promete oferecer uma alternativa competitiva ao Node.js, potencialmente sacudindo as bases dos ecossistemas JavaScript.
 

Contextualizando O que é Bun e Node.js? E para que eles servem?

Image description

Explorando o Potencial do Bun!

Sé você não sabe ou perdeu as últimas notícias do mundo tech no último mês foi lançada a versão 1.0 de um novo runtime para JavaScript que vem prometendo derrubar outro runtime o mais conhecido e usado até então Node.js. Bun e um novo runtime para JavaScript e Typescript que seguindo a sua descrição permite, testar, executar e agrupar projetos fazendo o bundle em JavaScript e Typescript, é um kit de ferramentas para JavaScript tudo em um, projetado para velocidade, compatível com Node.js e com algumas das seguintes premissas:

  1. Velocidade: Bun é rápido, usando o JavaScriptCore, o mecanismo JS voltado para desenvolvimento de apps que executem JavaScript incorporando diretamente nos sistemas da Apple.

  2. APIs Simplificadas: Bun oferece APIs mínimas e altamente eficientes para tarefas comuns, como iniciar servidores HTTP e manipular arquivos.

  3. Experiência de Desenvolvimento Unificada: Bun é um conjunto completo de ferramentas para criar aplicativos JavaScript, incluindo gerenciamento de pacotes, testes e empacotamento.

  4. Suporte Nativo: Oferece suporte nativo a Typescript, e compilação built-in que e o processo de transformar código Typescript em código JavaScript.

O Bun usa o JavaScriptCore da Apple e foi desenvolvido em C e C++ mais a grande parte do seu código e escrita na linguagem Zig, que é uma linguagem de programação de código aberto projetada para ser uma alternativa mais moderna, rápida e segura a outras linguagens de baixo nível, como as próprias C e C++.

Documentação do Bun
 

Node.js

Image description

O Node, o runtime até então mais famoso e usado, é um runtime também porque tem em sua base um ambiente de execução que permite que você execute código JavaScript além do navegador, e fornece as ferramentas necessárias para que o código JavaScript interaja com o sistema e realize tarefas de servidor, com algumas das seguintes premissas.

  1. Execução no servidor: Com o Node.js, você pode criar aplicativos de servidor, como sites, APIs e serviços, usando JavaScript.

  2. Plataforma única: Ele fornece uma plataforma única para desenvolver tanto o lado do servidor quanto o lado do cliente de um aplicativo, tornando mais fácil compartilhar código entre essas partes.

  3. Modelo de programação assíncrona: O Node.js utiliza um modelo de programação assíncrona, o que significa que permite que o código execute operações de forma não bloqueante, tornando-o eficiente para manipular muitas conexões simultâneas.

  4. Event-Driven: Usa um modelo de programação orientado a eventos, onde ações desencadeiam eventos e funções são executadas em resposta a esses eventos.

O Node.js foi desenvolvido principalmente usando a linguagem C e também incorpora códigos escritos em C++. É um ambiente de tempo de execução JavaScript construído sobre o motor V8 do Google, escrito em C++. Portanto, a base do Node.js é a combinação de código C/C++ e JavaScript.

Site e Doc do Node.js
 

Javascript

Image description

JavaScript é uma linguagem de programação usada principalmente na web. É uma linguagem interpretada, por trás disso, muitas vezes é utilizada a engine V8, desenvolvida pelo Google, para transformar em linguagem de máquina e executar o código JavaScript de forma eficiente.

Mas como funciona essa relação entre a linguagem JavaScript ser interpretada e a V8 transformar isso em linguagem de máquina?

JavaScript Interpretado:

  • JavaScript é uma linguagem de programação interpretada, o que significa que o código é lido e executado linha por linha em tempo real, como se você estivesse lendo um livro linha por linha e página por página.

    • Quando você abre uma página da web, um site, com código JavaScript, o navegador interpreta cada linha de código e a executa sequencialmente, realizando as ações especificadas no código, como abrir um modal, mostrar animações ou mostrar um botão para clicar.

A V8

  • É uma engine de JavaScript desenvolvida pelo Google.

    • Ela é usada principalmente no ambiente de execução Node.js e no navegador Google o Chrome.
    • A V8 é responsável por executar código JavaScript de uma maneira eficiente, compilando-o, ela não executa o código diretamente como texto, mas sim o converte em código de máquina antes da execução, para ser executado rapidamente.
  • A V8 se concentra na velocidade de execução e é projetada para tornar o JavaScript mais rápido e utiliza uma técnica chamada Compilação Justin-In-Time (JIT), que transforma o código JavaScript em um código de máquina mais otimizado e sob demanda, á medida que o código é executado.

Isso significa que enquanto o JavaScript faz a festa é e interpretado linha por linha, a V8 compila e otimiza o código à medida que avança, melhorando a velocidade de execução e afins.

Portanto, a relação entre a linguagem JavaScript ser interpretada e a V8 estar na V8 atuando como um intermediário que compila e otimiza o código JavaScript em código de máquina, tornando a execução mais rápida e eficiente à medida que o código é interpretado.
 

O Potencial Impacto do Bun no Ecossistema Node.js

Image description

O Bun, tem a ambição de criar o seu ecossistema próprio, e já vimos que promete trazer mudanças significativas ao cenário do Node.js e de outros, mas tomando como exemplo outras criações como a de outro ambiente de execução JavaScript, o Deno criado coincidentemente pelo mesmo criador do Node.js Ryan Dahl, sé formos comparar o impacto que o Deno trouxe ao Node, só foram impactos positivos e abaixo eu exploro um pouco melhor esses impactos.

  1. Diversidade e Inovação:
    O surgimento do Bun como um novo ambiente de execução JavaScript representa uma oportunidade para a diversificação do ecossistema. A concorrência pode ser saudável entre as plataformas pode levar a uma maior inovação para todos os lados, resultando em melhorias nas ferramentas, na eficiência e na experiência de desenvolvimento para os usuários do Node.js.

  2. O Deno: também criado também por Ryan Dahl, forneceu valiosas lições sobre como melhorar o ecossistema JavaScript. Suas ênfases na segurança, sistema de módulos e suporte ao TypeScript inspiraram melhorias no Node.js. O Bun pode continuar essas evoluções, incorporando as melhores práticas aprendidas com o Deno para beneficiar os desenvolvedores e a comunidade Node.js

  3. Escolha e Flexibilidade:
    A existência do Bun oferece a nós desenvolvedores mais opções, podemos escolher a plataforma que melhor atender às necessidades dos nossos projetos e essa flexibilidade pode resultar em um ecossistema mais adaptável e ágil.
     

Conclusão

Em resumo, o Bun representa uma emocionante reviravolta no ecossistema JavaScript e pode desempenhar um papel vital no desenvolvimento futuro de aplicações JS/TS e melhorias contínuas ao Node.js e outros. À medida que ambas as plataformas evoluem, os desenvolvedores podem esperar colher os frutos dessa competição e inovação, resultando em um ambiente de desenvolvimento JavaScript cada vez mais robusto e diversificado.

Espero que esse artigo seja útil de alguma forma!!

Minhas redes sócias e outros!

Meu LinkedIn
Meu Instagram
Meu GitHub

Postgres on Neon - Get the Free Plan

No credit card required. The database you love, on a serverless platform designed to help you build faster.

Get Postgres on Neon

Top comments (4)

Collapse
 
loremimpsu profile image
Lorem Impsu

o bunourtinho vai vir com tudo

Collapse
 
canhassi profile image
Canhassi

nice article

Collapse
 
mels profile image
Melina Schneider

really liked it!

Collapse
 
clintonrocha98 profile image
Clinton Rocha

O bun causou um BUN na comunidade node 🤣ótimo artigo, estou na espera dos próximos conteúdos !!

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more