Stiamo assumendo! Visualizza le posizioni aperte

Alla scoperta di Bun: l’ecosistema JavaScript veloce, moderno e innovativo

Introduzione

In questi ultimi 14 anni, gli strumenti richiesti per sviluppare in NodeJS sono diventati sempre più lenti e complessi (vedi: webpack, babel, lerna, ecc…). 

Bun è un toolkit all-in-one gratuito e open source che mira a risolvere questo problema: permette di gestire, eseguire, costruire, testare e debuggare singoli file o complesse applicazioni full-stack scritte in JavaScript e TypeScript in maniera semplice.

E’ stato sviluppato da “Oven”, un’azienda di sviluppo software con sede a San Francisco fondata con l’unico obiettivo di trasformare lo sviluppo in JavaScript rendendolo veloce e performante.

Dalla versione 1.0 diventa ufficialmente adatto ad essere utilizzato in produzione.

Ne avevamo davvero bisogno?

Dalla prima versione di Node JS, diversi strumenti sono stati sviluppati ed interconnessi tra loro per dare luce ai frameworks e alle librerie popolari che utilizziamo ogni giorno.

Ogni strumento aggiunto porta con sé un contributo di complessità in termini di configurazioni e performances, e viene accumulato con tutti gli altri strumenti già presenti e configurati all’interno del progetto.

Ad esempio, per sviluppare una “semplice” libreria di componenti React in TypeScript con NodeJS devi ALMENO introdurre e configurare:

  • Il package.json
  • Un gestore di pacchetti
  • Una runtime JavaScript
  • Un traspilatore per convertire TypeScript a JavaScript moderno 
  • Un traspilatore per convertire JavaScript Moderno a CommonJS
  • Un test runner e una libreria per far girare i test automatici
  • Un bundler per creare l’entry point delle applicazioni di esempio

Per sviluppare una semplice libreria di componenti React in TypeScript con Bun devi solo configurare il package.json.

Non potrebbe essere più semplice di così!

Maggiore è la complessità della libreria o dell’applicazione, maggiore è la probabilità che verranno utilizzati strumenti aggiuntivi o che ci sia la necessità di ritoccare quelli già presenti.

L’obiettivo di Bun in questi termini è semplice: ridurre al minimo la complessità e massimizzare la performances dei progetti JavaScript moderni. Le librerie e i frameworks che funzionano con Node JS dovrebbero continuare a funzionare con Bun come al solito, senza che lo sviluppatore debba imparare o configurare nulla di nuovo.

Nonostante non servano tutti gli strumenti esterni utilizzati nei progetti NodeJS, Bun non è un collo di bottiglia per lo sviluppo! è stato sviluppato in maniera da essere altamente personalizzabile per soddisfare la maggior parte dei requisiti progettuali.

Velocità – Bun vs NodeJS

Ecco qualche dato di comparazione tra Bun e NodeJS:

Come package manager

usare “bun” al posto di “npm” per l’installazione dei pacchetti aumenta le performances di 29 volte.

Come bundler

usare “bun” al posto di webpack per il bundling del codice aumenta la velocità di costruzione degli artefatti di 224 volte.

Come transpiler

La conversione di TypeScript in JavaScript con bun al posto di tsc aumenta la velocità di di 44 volte:

Come runtime

Un WebSocket in Bun è più veloce rispetto ad un Web Socket in Node JS di 6 volte:

Conclusioni

Al momento della scrittura di questo articolo Bun è stato dichiarato stabile e production-ready da pochi giorni; La community è molto attiva e non ci sono progetti molto grossi che lo utilizzano.

E’ una novità imperdibile per tutti gli sviluppatori Backend o Frontend che usano Node JS, e vale la pena attendere ancora un po di tempo prima di cominciare a introdurlo nei prossimi progetti di ricerca e sviluppo.

Se vuoi saperne di più, consulta il sito ufficiale di Bun o contattaci tramite il form!

Condividi l'articolo: