Neustále získavanie nových rámcov a knižníc je niečo, čím je JavaScript známy. V júli 2022 ekosystém privítal nového člena: Bun.js. Tu sa pozrieme na Bun.js a uvidíme, ako ovplyvňuje širší ekosystém JavaScriptu.

Čo je Bun.js?

Bun je definovaný ako „rýchly all-in-one JavaScript runtime“. Je tretím svojho druhu po Node.js a Deno.js, ktoré vytvoril Jarred Sumner pomocou programovacieho jazyka Zig.

Jeho hlavným cieľom je poskytnúť platformu na spustenie JavaScriptu mimo prehliadača, rovnako ako Node.js a Deno.js, ale Bun sa snaží poskytnúť nové úrovne rýchlosti a zvýšenej zložitosti.

Ako sa vyvinul JavaScript

JavaScript bol pôvodne vytvorený tak, aby fungoval iba vo vnútri prehliadačov poháňaných motormi ako SpiderMonkey a V8. V roku 2009 Ryan Dahl vložil motor V8 do programu C++, ktorý nazval Node.js. JavaScript sa odvtedy stal relevantným pre rôzne použitia, ako sú aplikácie na strane servera a aplikácie v reálnom čase.

Promises a ES moduly sú príklady moderných funkcií JavaScriptu, ktoré neexistovali, keď bol vytvorený Node.js. Ryan tiež v roku 2018 hovoril o veciach, ktoré ľutoval v súvislosti s Node.js. Jeho ľútosť inšpirovala vytvorenie Deno.js, ktoré vydal v roku 2020.

instagram viewer

Deno je spustiteľný súbor vytvorený s Rustom, ktorého cieľom je vyriešiť všetky nedostatky Node, ako je bezpečnosť, výkon a natívna podpora TypeScript. Je výrazne rýchlejší a bezpečnejší ako Node a prichádza s nástrojmi, ktoré v Node.js chýbajú.

Deno však nezískal masívne prijatie, ktoré sa očakávalo ani po štyroch rokoch vydania, pretože väčšina moderných systémov je už založená na Node a zmeny môžu byť pre vývojárov utrpením. Väčšinu treba prepísať npm balíky pre podporu Deno tiež spochybňujú jej prijatie.

V júli 2022 sa v beta verzii objavilo nové prostredie runtime – „Bun.js“ – ktoré je populárnou témou v komunite JavaScript aj mimo nej. Interoperabilita s Node.js a vysokorýchlostný výkon, ktorý údajne ponúka, boli ukážkovým kusom. Tiež vyvolalo diskusie o tom, že je tu konečne „ničiteľ uzlov“.

Ako sa Bun.js porovnáva s Node.js a Deno.js?

Node, Deno a Bun sú všetky runtime pre JavaScript mimo prehliadača, to nevylučuje rozdiely medzi nimi.

Node.js bol napísaný v C++, Deno v Rust a Bun v Zig. „Nízka úroveň kontroly nad pamäťou a nedostatok toku skrytého riadenia v Zig uľahčujú písanie rýchleho softvéru,“ uvádza Bunova webová stránka.

Zatiaľ čo Node aj Deno používajú motor V8 od Googlu, Bun využíva výkon „rýchleho štartu“ Webkitu. JavaScriptCore engine, ktorý používa Apple Safari. Výsledky benchmarku z webovej stránky ukazujú, ako Bun porazí Node aj Deno vo výkone, pričom funguje najmenej 3x rýchlejšie ako obe runtime.

Bun má vstavaný npm (Node package manager), ktorý uľahčuje a zrýchľuje inštaláciu balíkov z npm (20x vyššia rýchlosť v Node), podporuje tiež TypeScript a automaticky prenáša súbory TS a JSX. Medzi ďalšie vzrušujúce funkcie Bunu patrí vstavaný klient SQLite3, webové rozhrania API ako fetch a WebSocket, automatické načítanie premenných prostredia a testovací bežec.

Zo všetkých troch si Bun berie tortu na výkon. Node zostáva najstabilnejším s veľmi veľkou komunitou, zatiaľ čo Deno je v súčasnosti najbezpečnejším.

Ovplyvní Bun.js skutočne ekosystém?

Ekosystém je Bunovým vydaním nadšený. Je príjemné, že humbuk okolo Buna bol od oznámenia obrovský. Je to absolútne taká veľká vec. Vývojári JavaScriptu by ho naozaj milovali vzhľadom na jeho „ohromujúcu“ rýchlosť a robustné nástroje pre produktivitu.

ďalej Bun's Discord server už má viac ako 2000 členov, čo dokazuje nadšenie komunity pre túto novú technológiu.

Aká je budúcnosť Node.js, Deno.js a Bun.js?

JavaScript tak skoro nezmizne. V skutočnosti je to jedna z technológií, o ktorých sme si istí, že budú existovať aj o 10 rokov. Node, Deno a Bun majú tiež budúcnosť.

Uzol je stále pravidelne aktualizovaný, práve vydaná verzia 18.0 v poslednej dobe, preto jej budúcnosť zostáva nedotknutá aj s Denom a Bunom okolo. Mnoho spoločností ako PayPal používa Node vo svojich infraštruktúrach a dokonca aj nové startupy nasledujú.

Prípad je podobný pre Deno, ktoré sa aktívne rozvíja a rastie. Deno tiež napreduje v riešení SaaS na poskytovanie riadených runtime služieb JavaScriptu.

Bun.js je stále nestabilný a má obmedzenú podporu (potrebujete Subsystém Windows pre Linux spustiť v systéme Windows). Hoci má toľko možností, nemôže byť teraz voľbou pre softvér pripravený na výrobu, pretože je na ňom ešte veľa práce.

Zatiaľ čo budúcnosť je pre Buna určite sľubná, je logické veriť, že tieto tri technológie s najväčšou pravdepodobnosťou skončia v ekosystéme vedľa seba, pričom jedna nenahradí druhú.

Bun.js môže zmeniť hru

S Bunom sa môže veľa vecí v JavaScripte zlepšiť. Pravdepodobne je čas, aby sa JavaScript lepšie osvojil v oblastiach kritických z hľadiska výkonu, ako je AI/ML, vývoj hier atď. Zamierte na Bun.sh webovú stránku, kde sa dozviete, ako nainštalovať a začať vyvíjať s Bun.