Neustále získávání nových frameworků a knihoven je něco, čím je JavaScript známý. V červenci 2022 přivítal ekosystém nového člena: Bun.js. Zde se podíváme na Bun.js a uvidíme, jak ovlivňuje širší ekosystém JavaScriptu.
Co je Bun.js?
Drdol je definován jako „rychlé all-in-one JavaScript runtime“. Je to třetí svého druhu po Node.js a Deno.js, které vytvořil Jarred Sumner pomocí programovacího jazyka Zig.
Jeho hlavním cílem je poskytnout platformu pro spouštění JavaScriptu mimo prohlížeč, stejně jako Node.js a Deno.js, ale Bun se snaží poskytovat nové úrovně rychlosti a vylepšené složitosti.
Jak se vyvíjel JavaScript
JavaScript byl původně vytvořen tak, aby běžel pouze uvnitř prohlížečů, poháněných motory jako SpiderMonkey a V8. V roce 2009 Ryan Dahl vložil motor V8 do programu C++, který nazval Node.js. JavaScript se od té doby stal relevantním pro různá použití, jako jsou aplikace na straně serveru a aplikace v reálném čase.
Moduly Promises a ES jsou příklady moderních funkcí JavaScriptu, které v době vytvoření Node.js neexistovaly. Ryan také v roce 2018 promluvil o věcech, kterých litoval ohledně Node.js. Jeho lítost inspirovala vytvoření Deno.js, které vydal v roce 2020.
Deno je spustitelný soubor vytvořený s Rustem, jehož cílem je vyřešit všechny nedostatky Node, jako je zabezpečení, výkon a nativní podpora TypeScript. Je výrazně rychlejší a bezpečnější než Node a přichází s nástroji, které v Node.js chybí.
Deno však nezískalo očekávané masivní přijetí ani po čtyřech letech vydání, protože většina moderních systémů je již založena na Node a změna může být pro vývojáře bolestí. Většinu je třeba přepsat npm balíčky pro podporu Deno také zpochybňují její přijetí.
V červenci 2022 se v beta verzi objevilo nové běhové prostředí – „Bun.js“ – což je populární téma v komunitě JavaScriptu i mimo ni. Interoperabilita s Node.js a vysokorychlostní výkon, který údajně nabízí, byly ukázkovým kusem. Také to vyvolalo diskuse o tom, že je tu konečně „ničitel uzlů“.
Jak se Bun.js srovnává s Node.js a Deno.js?
Node, Deno a Bun jsou všechny běhové moduly pro JavaScript mimo prohlížeč, to neneutralizuje rozdíly mezi nimi.
Node.js byl napsán v C++, Deno v Rustu a Bun v Zig. „Nízkoúrovňová kontrola nad pamětí a nedostatek toku skryté kontroly v Zig usnadňují psaní rychlého softwaru,“ uvádí Bunova webová stránka.
Zatímco Node i Deno využívají motor V8 od Googlu, Bun využívá výkon „rychlého startu“ Webkitu. JavaScriptCore engine, který používá Apple Safari. Výsledky srovnávacích testů z webu ukazují, jak Bun poráží Node i Deno ve výkonu a pracuje nejméně 3x rychleji než obě runtime.
Bun má vestavěný npm (Node package manager), díky kterému je instalace balíčků z npm snadná a rychlá (20x vyšší rychlost v Node), podporuje také TypeScript a automaticky překládá soubory TS a JSX. Mezi další vzrušující funkce Bunu patří vestavěný klient SQLite3, webová rozhraní API jako fetch a WebSocket, automatické načítání proměnných prostředí a testovací běh.
Ze všech tří si Bun bere dort na výkon. Node zůstává nejstabilnější s velmi velkou komunitou, zatímco Deno je v současnosti nejbezpečnější.
Bude Bun.js skutečně ovlivňovat ekosystém?
Ekosystém je Bunovým vydáním nadšen. Je příjemné, že humbuk kolem Bun byl od oznámení obrovský. Je to absolutně tak velký problém. Vývojáři JavaScriptu by ho opravdu milovali vzhledem k jeho „ohromující“ rychlosti a robustním nástrojům pro produktivitu.
dále Bun's Discord server již má více než 2000 členů, což dokazuje nadšení komunity pro tuto novou technologii.
Jaká je budoucnost Node.js, Deno.js a Bun.js?
JavaScript v dohledné době nezmizí. Ve skutečnosti je to jedna z technologií, o kterých jsme si jisti, že za 10 let bude stále k dispozici. Node, Deno a Bun mají také budoucnost.
Uzel je stále pravidelně aktualizován, právě vydaná verze 18.0 v poslední době, proto jeho budoucnost zůstává nedotčena i s Deno a Bun kolem. Mnoho společností, jako je PayPal, používá Node ve svých infrastrukturách a dokonce i nové startupy ho následují.
Případ je podobný pro Deno, které se aktivně vyvíjí a roste. Deno také postupuje do řešení SaaS, které poskytuje spravované běhové služby JavaScriptu.
Bun.js je stále nestabilní a má omezenou podporu (potřebujete Subsystém Windows pro Linux spustit v systému Windows). Přestože má tolik možností, nemůže být nyní volbou pro software připravený k produkci, protože je na něm stále ještě spousta práce.
I když je budoucnost pro Buna rozhodně slibná, je logické věřit, že tyto tři technologie s největší pravděpodobností nakonec v ekosystému budou koexistovat a jedna nenahradí druhou.
Bun.js může změnit hru
S Bunem se může spousta věcí na JavaScriptu zlepšit. Pravděpodobně nastal čas, aby se JavaScript lépe osvojil v oblastech kritických pro výkon, jako je AI/ML, vývoj her atd. Vydejte se na Bun.sh webové stránky, kde se dozvíte, jak nainstalovat a začít vyvíjet s Bun.