Ottenere sempre nuovi framework e librerie è qualcosa per cui JavaScript è famoso. Nel luglio 2022 l'ecosistema ha accolto un nuovo membro: Bun.js. Qui daremo un'occhiata a Bun.js e vedremo come influisce sul più ampio ecosistema JavaScript.
Cos'è Bun.js?
Panino è definito come "un veloce runtime JavaScript all-in-one". È il terzo del suo genere dopo Node.js e Deno.js, creato da Jarred Sumner utilizzando il linguaggio di programmazione Zig.
Il suo obiettivo principale è fornire una piattaforma per l'esecuzione di JavaScript al di fuori del browser, proprio come Node.js e Deno.js, ma Bun avanza per fornire nuovi livelli di velocità e maggiore complessità.
Come si è evoluto JavaScript
JavaScript è stato originariamente creato per funzionare solo all'interno dei browser, alimentato da motori come SpiderMonkey e V8. Nel 2009, Ryan Dahl ha incorporato il motore V8 in un programma C++ che ha chiamato Node.js. JavaScript, da allora è diventato rilevante per vari usi come applicazioni lato server e in tempo reale.
Promise e moduli ES sono esempi di moderne funzionalità JavaScript che non esistevano quando è stato creato Node.js. Ryan ha anche tenuto un discorso nel 2018 su cose di cui si è pentito di Node.js. I suoi rimpianti hanno ispirato la creazione di Deno.js che ha pubblicato nel 2020.
Deno è un eseguibile creato con Rust che mira ad affrontare tutti i difetti di Node come sicurezza, prestazioni e supporto TypeScript nativo. È significativamente più veloce e più sicuro di Node e viene fornito con strumenti assenti in Node.js.
Tuttavia, Deno non ha ottenuto l'adozione massiccia prevista anche dopo quattro anni di rilascio, visto che la maggior parte dei sistemi moderni sono già basati su Node e il cambiamento può essere una seccatura per gli sviluppatori. Dover riscrivere la maggior parte npm anche i pacchetti per il supporto di Deno ne sfidano l'adozione.
Nel luglio 2022 è apparso un nuovo runtime in versione beta, "Bun.js", che è stato un argomento di tendenza dentro e fuori la comunità JavaScript. L'interoperabilità con Node.js e le prestazioni ad alta velocità che afferma di offrire sono state il fiore all'occhiello. Ha anche sollevato discussioni sul fatto che finalmente c'è un "distruttore di nodi" in giro.
Come si confronta Bun.js con Node.js e Deno.js?
Node, Deno e Bun sono tutti runtime per JavaScript al di fuori del browser, questo non neutralizza le differenze tra loro.
Node.js è stato scritto in C++, Deno in Rust e Bun in Zig. "Il controllo di basso livello sulla memoria e la mancanza di flusso di controllo nascosto in Zig rendono più facile scrivere software veloce", afferma il sito web di Bun.
Mentre Node e Deno utilizzano entrambi il motore V8 di Google, Bun sfrutta le prestazioni di "avvio rapido" di Webkit JavaScriptCore motore utilizzato da Safari di Apple. I risultati del benchmark dal sito Web mostrano come Bun batte sia Node che Deno in termini di prestazioni, operando almeno 3 volte più velocemente di entrambi i tempi di esecuzione.
Bun ha npm (gestore di pacchetti Node) integrato che rende l'installazione dei pacchetti da npm facile e veloce (20 volte la velocità in Node), supporta anche TypeScript e file TS e JSX di transpilazione automatica. Altre interessanti funzionalità di Bun includono un client SQLite3 integrato, API Web come fetch e WebSocket, caricamento automatico delle variabili di ambiente e un test runner.
Di tutti e tre, Bun prende la torta per la performance. Node rimane il più stabile con una community molto ampia, mentre Deno è attualmente il più sicuro.
Bun.js avrà davvero un impatto sull'ecosistema?
L'ecosistema è entusiasta del rilascio di Bun. È piacevole che il clamore intorno a Bun sia stato enorme dall'annuncio. È assolutamente un grosso problema. Gli sviluppatori JavaScript lo apprezzerebbero davvero considerando la sua velocità "sbalorditiva" e gli strumenti robusti per la produttività.
Inoltre, Il server Discord di Bun ha già oltre 2000 membri che dimostrano l'entusiasmo nella comunità per questa nuova tecnologia.
Qual è il futuro di Node.js, Deno.js e Bun.js?
JavaScript non scomparirà presto. In realtà, è una delle tecnologie che siamo sicuri sarebbe ancora in circolazione tra 10 anni da oggi. Anche Node, Deno e Bun hanno un futuro.
Il nodo è ancora regolarmente aggiornato, versione 18.0 appena rilasciata recentemente, quindi il suo futuro rimane intatto anche con Deno e Bun in giro. Molte aziende come PayPal utilizzano Node nelle loro infrastrutture e anche le nuove startup stanno seguendo l'esempio.
Il caso è simile per Deno, che è attivamente sviluppato e sta crescendo. Deno sta anche avanzando in una soluzione SaaS per fornire servizi di runtime JavaScript gestiti.
Bun.js è ancora instabile e ha un supporto limitato (è necessario Sottosistema Windows per Linux per eseguirlo su Windows). Sebbene abbia così tante funzionalità, non può essere un'opzione per il software pronto per la produzione ora poiché c'è ancora molto lavoro da fare su di esso.
Sebbene il futuro sia decisamente promettente per Bun, è logico credere che queste tre tecnologie molto probabilmente finiranno per coesistere nell'ecosistema, nessuna delle quali sostituirà l'altra.
Bun.js potrebbe essere un punto di svolta
Con Bun, molte cose potrebbero migliorare con JavaScript. Probabilmente è giunto il momento che JavaScript ottenga una migliore adozione in campi critici per le prestazioni come AI/ML, sviluppo di giochi, ecc. Dirigetevi verso il Bun.sh sito Web per imparare come installare e iniziare a sviluppare con Bun.