Ciągłe zdobywanie nowych frameworków i bibliotek jest czymś, z czego słynie JavaScript. W lipcu 2022 roku ekosystem powitał nowego członka: Bun.js. Tutaj przyjrzymy się Bun.js i zobaczymy, jak wpływa na szerszy ekosystem JavaScript.
Co to jest Bun.js?
Kok jest zdefiniowany jako „szybkie środowisko wykonawcze JavaScript typu „wszystko w jednym”. Jest trzecim tego rodzaju po Node.js i Deno.js, stworzonym przez Jarreda Sumnera przy użyciu języka programowania Zig.
Jego głównym celem jest zapewnienie platformy do uruchamiania JavaScript poza przeglądarką, tak jak Node.js i Deno.js, ale Bun rozwija się, aby zapewnić nowy poziom szybkości i zwiększonej złożoności.
Jak ewoluował JavaScript
JavaScript został pierwotnie zbudowany do uruchamiania tylko w przeglądarkach, napędzanych silnikami takimi jak SpiderMonkey i V8. W 2009 roku Ryan Dahl osadził silnik V8 w programie C++, który nazwał Node.js. JavaScript od tego czasu stał się przydatny w różnych zastosowaniach, takich jak aplikacje po stronie serwera i aplikacje czasu rzeczywistego.
Promises i moduły ES to przykłady nowoczesnych funkcji JavaScript, które nie istniały w momencie tworzenia Node.js. Ryan wygłosił również przemówienie w 2018 roku na temat rzeczy, których żałował w związku z Node.js. Jego żale zainspirowały stworzenie Deno.js, który wydał w 2020 roku.
Deno to plik wykonywalny zbudowany za pomocą Rust, który ma na celu rozwiązanie wszystkich wad Node, takich jak bezpieczeństwo, wydajność i natywna obsługa TypeScript. Jest znacznie szybszy i bezpieczniejszy niż Node i zawiera narzędzia nieobecne w Node.js.
Jednak Deno nie zyskało oczekiwanej masowej adopcji nawet po czterech latach od wydania, ponieważ większość nowoczesnych systemów jest już oparta na węzłach, a zmiany mogą być uciążliwe dla programistów. Konieczność przepisywania większości npm pakiety wsparcia Deno również kwestionują jego przyjęcie.
W lipcu 2022 r. w wersji beta pojawiło się nowe środowisko wykonawcze — „Bun.js” — które było popularnym tematem w społeczności JavaScript i poza nią. Wizytówką była interoperacyjność z Node.js i wysoka wydajność, którą twierdzi, że oferuje. Wzbudziło to również dyskusje, że w końcu istnieje „Niszczyciel węzłów”.
Jak Bun.js wypada w porównaniu z Node.js i Deno.js?
Node, Deno i Bun są środowiskami uruchomieniowymi JavaScript poza przeglądarką, co nie neutralizuje różnic między nimi.
Node.js został napisany w C++, Deno w Rust, a Bun w Zig. „Niskopoziomowa kontrola nad pamięcią i brak ukrytego przepływu kontroli w Zigu ułatwiają pisanie szybkiego oprogramowania” — czytamy na stronie internetowej Bun.
Podczas gdy Node i Deno korzystają z silnika Google V8, Bun wykorzystuje wydajność „szybkiego startu” Webkit JavaScript silnik, z którego korzysta Safari firmy Apple. Wyniki testów porównawczych ze strony internetowej pokazują, jak Bun pokonuje zarówno Node, jak i Deno pod względem wydajności, działając co najmniej 3 razy szybciej niż oba środowiska wykonawcze.
Bun ma wbudowany npm (menedżer pakietów Node), który sprawia, że instalacja pakietu z npm jest łatwa i szybka (20x szybkość w Node), obsługuje także TypeScript i autotranspiles plików TS i JSX. Inne ekscytujące funkcje Bun to wbudowany klient SQLite3, internetowe interfejsy API, takie jak pobieranie i WebSocket, automatyczne ładowanie zmiennych środowiskowych i uruchamianie testów.
Ze wszystkich trzech Bun bierze tort na występ. Node pozostaje najbardziej stabilnym z bardzo dużą społecznością, podczas gdy Deno jest obecnie najbardziej bezpiecznym.
Czy Bun.js naprawdę wpłynie na ekosystem?
Ekosystem jest podekscytowany premierą Bun. To dobrze, że szum wokół Bun był ogromny od czasu ogłoszenia. To absolutnie taka wielka sprawa. Deweloperzy JavaScript naprawdę pokochaliby to, biorąc pod uwagę jego „niesamowitą” szybkość i solidne narzędzia zwiększające produktywność.
Ponadto, Serwer Discord Bun ma już ponad 2000 członków, co świadczy o ekscytacji społeczności dla tej nowej technologii.
Jaka jest przyszłość Node.js, Deno.js i Bun.js?
JavaScript nie zniknie w najbliższym czasie. W rzeczywistości jest to jedna z technologii, co do których jesteśmy pewni, że za 10 lat nadal będzie bardzo popularna. Node, Deno i Bun też mają przed sobą przyszłość.
Węzeł jest nadal regularnie aktualizowany, wersja 18.0 właśnie wydana ostatnio więc jego przyszłość pozostaje nienaruszona, nawet gdy Deno i Bun są w pobliżu. Wiele firm, takich jak PayPal, używa Node w swojej infrastrukturze, a nawet nowe start-upy idą w ich ślady.
Podobnie jest w przypadku Deno, które jest aktywnie rozwijane i powiększa się. Deno przechodzi również na rozwiązanie SaaS, aby zapewnić zarządzane usługi środowiska wykonawczego JavaScript.
Bun.js jest nadal niestabilny i ma ograniczone wsparcie (potrzebujesz Podsystem Windows dla Linuksa uruchomić go w systemie Windows). Chociaż ma tak wiele możliwości, nie może być teraz opcją dla oprogramowania gotowego do produkcji, ponieważ wciąż jest nad nim wiele pracy.
Chociaż przyszłość Bun jest zdecydowanie obiecująca, logiczne jest przypuszczenie, że te trzy technologie najprawdopodobniej będą współistnieć w ekosystemie, a nie jedna zastępować drugą.
Bun.js może zmienić zasady gry
Z Bun wiele rzeczy może być lepszych w JavaScript. Prawdopodobnie nadszedł czas, aby JavaScript zyskał lepszą adopcję w dziedzinach krytycznych dla wydajności, takich jak AI/ML, tworzenie gier itp. Udaj się do Bun.sh stronę internetową, aby dowiedzieć się, jak zainstalować i rozpocząć programowanie za pomocą Bun.