Bun.js là gì và tại sao cộng đồng JavaScript lại hào hứng về nó?
Luôn luôn có được các khung và thư viện mới là điều mà JavaScript nổi tiếng. Vào tháng 7 năm 2022, hệ sinh thái chào đón một thành viên mới: Bun.js. Ở đây, chúng ta sẽ xem xét Bun.js và xem nó ảnh hưởng như thế nào đến hệ sinh thái JavaScript rộng lớn hơn.
Mục Lục
Bun.js là gì?
Bún được định nghĩa là “thời gian chạy JavaScript tất cả trong một nhanh chóng”. Đây là phần mềm thứ ba thuộc loại này sau Node.js và Deno.js, do Jarred Sumner tạo ra bằng ngôn ngữ lập trình Zig.
Mục đích chính của nó là cung cấp một nền tảng để chạy JavaScript bên ngoài trình duyệt giống như Node.js và Deno.js, nhưng Bun tiến bộ để cung cấp các cấp tốc độ mới và độ phức tạp nâng cao.
JavaScript đã phát triển như thế nào
JavaScript ban đầu được xây dựng để chỉ chạy bên trong các trình duyệt, được hỗ trợ bởi các công cụ như SpiderMonkey và V8. Năm 2009, Ryan Dahl đã nhúng động cơ V8 vào một chương trình C ++ mà anh gọi là Node.js. JavaScript, kể từ đó trở nên thích hợp cho các mục đích sử dụng khác nhau như các ứng dụng phía máy chủ và thời gian thực.
Các mô-đun Promises và ES là những ví dụ về các tính năng JavaScript hiện đại không tồn tại khi Node.js được tạo ra. Ryan cũng đã có một bài nói chuyện vào năm 2018 về những điều anh ấy hối tiếc về Node.js. Sự hối tiếc của anh ấy đã truyền cảm hứng cho việc tạo ra Deno.js mà anh ấy đã phát hành vào năm 2020.
Deno là một tệp thực thi được xây dựng bằng Rust nhằm mục đích khắc phục tất cả các lỗi của Node như bảo mật, hiệu suất và hỗ trợ TypeScript gốc. Nó nhanh hơn và an toàn hơn đáng kể so với Node, và nó đi kèm với các công cụ không có trong Node.js.
Tuy nhiên, Deno đã không đạt được sự chấp nhận rộng rãi như mong đợi ngay cả sau bốn năm phát hành, vì thấy rằng hầu hết các hệ thống hiện đại đã dựa trên Node và sự thay đổi có thể là một nỗi đau cho các nhà phát triển. Việc phải viết lại hầu hết các gói npm để hỗ trợ Deno cũng thách thức việc áp dụng nó.
Vào tháng 7 năm 2022, một thời gian chạy mới xuất hiện trong bản beta – “Bun.js” – đã trở thành một chủ đề thịnh hành trong và ngoài cộng đồng JavaScript. Khả năng tương tác với Node.js và hiệu suất tốc độ cao mà nó tuyên bố cung cấp đã là điểm nổi bật. Nó cũng đã đưa ra các cuộc thảo luận rằng cuối cùng đã có một “kẻ hủy diệt nút” xung quanh.
Bun.js So sánh với Node.js và Deno.js như thế nào?
Node, Deno và Bun đều là thời gian chạy cho JavaScript bên ngoài trình duyệt, điều này không vô hiệu hóa sự khác biệt giữa chúng.
Node.js được viết bằng C ++, Deno trong Rust và Bun trong Zig. “Việc kiểm soát bộ nhớ ở mức độ thấp và thiếu luồng điều khiển ẩn trong Zig giúp việc viết phần mềm nhanh trở nên dễ dàng hơn” trên trang web của Bun.
Trong khi Node và Deno đều chạy công cụ V8 của Google, Bun tận dụng hiệu suất “khởi động nhanh” của công cụ JavaScriptCore của Webkit mà Safari của Apple sử dụng. Kết quả điểm chuẩn từ trang web cho thấy cách Bun đánh bại cả Node và Deno về hiệu suất, hoạt động nhanh hơn ít nhất 3 lần so với cả hai thời gian chạy.
Bun tích hợp sẵn npm (trình quản lý gói Node) giúp cài đặt gói từ npm dễ dàng và nhanh chóng (tốc độ gấp 20 lần trong Node), nó cũng hỗ trợ TypeScript và tự động chuyển các tệp TS và JSX. Các tính năng thú vị khác của Bun bao gồm ứng dụng khách SQLite3 có sẵn, các API web như tìm nạp và WebSocket, tự động tải các biến môi trường và trình chạy thử nghiệm.
Trong cả ba, Bun đều lấy bánh để biểu diễn. Node vẫn là một trong những ổn định nhất với một cộng đồng rất lớn, trong khi Deno hiện là một trong những an toàn nhất.
Liệu Bun.js có thực sự tác động đến hệ sinh thái không?
Hệ sinh thái đang rất phấn khích trước sự phát hành của Bun. Thật dễ dàng khi sự cường điệu xung quanh Bun đã rất lớn kể từ khi thông báo. Nó hoàn toàn là một vấn đề lớn. Các nhà phát triển JavaScript thực sự sẽ thích nó khi xem xét tốc độ “nhanh như chớp” và công cụ mạnh mẽ để tăng năng suất.
Hơn nữa, máy chủ Discord của Bun đã có hơn 2000 thành viên, điều này chứng tỏ sự hào hứng trong cộng đồng đối với công nghệ mới này.
Tương lai của Node.js, Deno.js và Bun.js là gì?
JavaScript sẽ không sớm biến mất. Trên thực tế, đó là một trong những công nghệ mà chúng tôi chắc chắn sẽ còn rất nhiều trong khoảng thời gian 10 năm nữa kể từ bây giờ. Node, Deno và Bun cũng có tương lai.
Node vẫn được cập nhật thường xuyên, phiên bản 18.0 vừa được phát hành gần đây, do đó tương lai của nó vẫn còn nguyên vẹn ngay cả khi có Deno và Bun xung quanh. Nhiều công ty như PayPal sử dụng Node trong cơ sở hạ tầng của họ và ngay cả những công ty khởi nghiệp mới cũng đang làm theo.
Trường hợp tương tự đối với Deno, được phát triển tích cực và ngày càng lớn mạnh. Deno cũng đang tiến tới một giải pháp SaaS để cung cấp các dịch vụ thời gian chạy JavaScript được quản lý.
Bun.js vẫn chưa ổn định và được hỗ trợ hạn chế (bạn cần Hệ thống con của Windows dành cho Linux để chạy nó trên Windows). Mặc dù nó có rất nhiều khả năng, nó không thể là một lựa chọn cho phần mềm sẵn sàng sản xuất hiện nay vì vẫn còn rất nhiều việc phải làm trên nó.
Mặc dù tương lai chắc chắn đầy hứa hẹn đối với Bun, nhưng thật hợp lý khi tin rằng ba công nghệ này rất có thể sẽ cùng tồn tại trong hệ sinh thái, chứ không phải cái nào thay thế cái kia.
Bun.js có thể trở thành người thay đổi trò chơi
Với Bun, nhiều thứ có thể trở nên tốt hơn về JavaScript. Có lẽ đã đến lúc JavaScript được áp dụng tốt hơn trong các lĩnh vực quan trọng về hiệu suất như AI / ML, phát triển trò chơi, v.v. Hãy truy cập trang web Bun.sh để tìm hiểu cách cài đặt và bắt đầu phát triển với Bun.