Å få nye rammer og biblioteker hele tiden er noe JavaScript er kjent for. I juli 2022 ønsket økosystemet et nytt medlem velkommen: Bun.js. Her skal vi ta en titt på Bun.js og se hvordan det påvirker det bredere JavaScript-økosystemet.
Hva er Bun.js?
Bolle er definert som "en rask alt-i-ett JavaScript-kjøretid". Det er den tredje i sitt slag etter Node.js og Deno.js, laget av Jarred Sumner ved å bruke Zig-programmeringsspråket.
Hovedmålet er å tilby en plattform for å kjøre JavaScript utenfor nettleseren akkurat som Node.js og Deno.js, men Bun går videre for å gi nye nivåer av hastighet og forbedret kompleksitet.
Hvordan JavaScript har utviklet seg
JavaScript ble opprinnelig bygget for kun å kjøre i nettlesere, drevet av motorer som SpiderMonkey og V8. I 2009 innebygde Ryan Dahl V8-motoren i et C++-program som han kalte Node.js. JavaScript, siden den gang ble relevant for ulike bruksområder som server-side og sanntidsapplikasjoner.
Promises og ES-moduler er eksempler på moderne JavaScript-funksjoner som ikke eksisterte da Node.js ble opprettet. Ryan holdt også et foredrag i 2018 om ting han angret på med Node.js. Hans anger inspirerte etableringen av Deno.js som han ga ut i 2020.
Deno er et kjørbart program bygget med Rust som tar sikte på å takle alle Nodes feil som sikkerhet, ytelse og innebygd TypeScript-støtte. Det er betydelig raskere og sikrere enn Node, og det kommer med verktøy som mangler i Node.js.
Deno har imidlertid ikke fått den massive adopsjonen som forventes selv etter fire år med utgivelse, ettersom de fleste moderne systemer allerede er nodebaserte og endring kan være en smerte for utviklere. Må skrive om det meste npm pakker for Deno-støtte utfordrer også adopsjonen.
I juli 2022 dukket det opp en ny kjøretid i beta – «Bun.js» – som har vært et populært tema inn og ut av JavaScript-fellesskapet. Interoperabiliteten med Node.js og høyhastighetsytelsen den hevder å tilby har vært utstillingsvinduet. Det har også reist diskusjoner om at det endelig er en "Node-destroyer" rundt.
Hvordan er Bun.js sammenlignet med Node.js og Deno.js?
Node, Deno og Bun er alle kjøretider for JavaScript utenfor nettleseren, dette nøytraliserer ikke forskjellene mellom dem.
Node.js ble skrevet i C++, Deno i Rust og Bun i Zig. "Lavnivåkontrollen over minnet og mangelen på skjult kontrollflyt i Zig gjør det lettere å skrive rask programvare", heter det på Buns nettsted.
Mens Node og Deno begge kjører Googles V8-motor, utnytter Bun «hurtigstart»-ytelsen til Webkits JavaScriptCore motor som Apples Safari bruker. Referanseresultater fra nettstedet viser hvordan Bun slår både Node og Deno i ytelse, og opererer minst 3X raskere enn begge kjøretidene.
Bun har npm (Node package manager) innebygd som gjør pakkeinstallasjon fra npm enkel og rask (20x hastigheten i Node), den støtter også TypeScript og autotranspilerer TS og JSX filer. Andre spennende funksjoner i Bun inkluderer en innebygd SQLite3-klient, web-APIer som henting og WebSocket, miljøvariabler som automatisk laster inn, og en testløper.
Av alle tre tar Bun kaken for opptreden. Node er fortsatt den mest stabile med et veldig stort fellesskap, mens Deno for øyeblikket er det sikreste.
Vil Bun.js virkelig påvirke økosystemet?
Økosystemet er begeistret over utgivelsen av Bun. Det er hyggelig at hypen rundt Bun har vært enorm siden kunngjøringen. Det er absolutt en så stor sak. JavaScript-utviklere ville virkelig elsket det med tanke på dens "flammende" hastighet og robuste verktøy for produktivitet.
Dessuten, Buns Discord-server har allerede over 2000 medlemmer, noe som beviser spenningen i samfunnet for denne nye teknologien.
Hva er fremtiden til Node.js, Deno.js og Bun.js?
JavaScript forsvinner ikke med det første. I virkeligheten er det en av teknologiene vi er sikre på at vil fortsatt være mye rundt om 10 år fra nå. Node, Deno og Bun har også en fremtid.
Node oppdateres fortsatt jevnlig, versjon 18.0 nettopp utgitt nylig, derfor forblir fremtiden intakt selv med Deno og Bun rundt. Mange selskaper som PayPal bruker Node i sine infrastrukturer, og til og med nye startups følger etter.
Saken er lik for Deno, som aktivt utvikles og vokser seg større. Deno går også videre til en SaaS-løsning for å tilby administrerte JavaScript-runtime-tjenester.
Bun.js er fortsatt ustabil og har begrenset støtte (du trenger Windows-undersystem for Linux for å kjøre den på Windows). Selv om det har så mange muligheter, kan det ikke være et alternativ for produksjonsklar programvare nå, da det fortsatt er mye arbeid å gjøre med det.
Selv om fremtiden definitivt er lovende for Bun, er det logisk å tro at disse tre teknologiene mest sannsynlig vil ende opp med å eksistere side om side i økosystemet, ikke den ene erstatter den andre.
Bun.js kan være en Game Changer
Med Bun kan mange ting bli bedre med JavaScript. Det er sannsynligvis på tide at JavaScript får bedre bruk i ytelseskritiske felt som AI/ML, spillutvikling, etc. Gå til Bun.sh nettsted for å lære hvordan du installerer og begynner å utvikle med Bun.