Jeszcze niedawno typowano Deno na następcę Node.js, a teraz okazuje się, że ma kolejnego potencjalnego następcę – Bun, bo o nim mowa, to najnowsze narzędzie JS, o którym twórcy mówią jako tym, które ma szansę zastąpić nie tylko nodejs, ale i Deno. Czy rzeczywiście Bun ma realny potencjał, by zastąpić oba frameworki w niedalekiej przyszłości? Sprawdziliśmy, a Ty dowiesz się, czytając dzisiejszy artykuł.
Kwestie poruszone w artykule to:
- Główny atut – ekstremalnie szybka wydajność
- Jak wygląda wydajność Bun w porównaniu z NodeJS i Deno?
- Jaki był cel zaprojektowania Bun?
Główny atut – ekstremalnie szybka wydajność
Zanim przejdziemy do omawiania głównego atutu Bun, trzeba wspomnieć o tym, że nie ma w tym nic szczególnego, że nowsze narzędzia wypierają starsze. Szkopuł tkwi w tym, że jeśli mowa o narzędziach Java Script, każde (niemal) kolejne narzędzie jest zapowiadane jako rewolucyjne, które zastąpi poprzednie, w tym Node,js. Ile w tym myślenia życzeniowego, ile prawdy, dowiemy się w najbliższej przyszłości, niemniej Bun rzeczywiście rozwiązuje problem, z jakimi mierzy się obecnie wiele języków programowania – a jest nim ekstremalnie szybka wydajność.
Jak wygląda wydajność Bun w porównaniu z NodeJS i Deno?
Bun został napisany praktycznie od zera w niskopoziomowym języku programowania ZIG, o którym mówiono kiedyś, że zastąpi C. Twórcom udało się uzyskać niesamowite wyniki w testach wydajnościowych, właśnie dzięki ręcznej opcji kontroli pamięci, na jaką pozwolił ZIG. W przykładowym teście, jaki przeprowadzono na trzech frameworkach – Node.js, Deno i Bun v0.1.0, ten ostatni wyprzedził Nodejs aż trzykrotnie!
W innym teście – szybkości wczytania tablicy QSite, Bun również wyprzedził konkurencję – udało mu się obsłużyć 60,24 zapytań na sekundę, podczas gdy NodeJS miał w tym samym czasie wynik 23,28 zapytań, a Deno mniej niż 10. Ta niesamowita szybkość to niekwestionowany atut Bun, który może sprawić, że w najbliższej przyszłości zacznie być używany wszędzie tam, gdzie do tej pory występowały problemy z wydajnością.
Jak piszą autorzy – Bun zawdzięcza swoją niesamowitą szybkość niskiej kontroli nad pamięcią oraz brakowi ukrytego przepływu sterowania, co znacznie przyspiesza i ułatwia pisanie szybkiego oprogramowania. Bun zbudowano na silniku JavaScriptCore, który zwykle uruchamia się i działa nieco szybciej niż bardziej tradycyjne opcje, takie jak V8. Większość Bun jest napisana od podstaw, w tym: transpiler JSX/TypeScript, klient npm, bundler, klient SQLite, klient HTTP, klient WebSocket i inne.
Jaki był cel zaprojektowania Bun?
Jak można przeczytać na oficjalnej stronie: Cel Bun to uruchamianie większości światowego JavaScriptu poza przeglądarkami, co zapewni poprawę wydajności i złożoności przyszłej infrastruktury, a także zwiększy produktywność programistów, dzięki lepszym i łatwiejszym w obsłudze narzędziom. Jeśli rzeczywiście Bun sprawdzi się w obszarach, w których inne frameworki, takie jak Node.js mają problem z wydajnością, to Bun jest rzeczywiście realną odpowiedzią na nie, chociaż nie jest prawdopodobne, by całkowicie zastąpił Nodejs. Na pewno nie w najbliższej przyszłości.