Bun 1.3版本整合JavaScript工具鏈引發開發者爭議

Bun 1.3版本整合JavaScript工具鏈引發開發者爭議

Bun JavaScript運行時和工具包的1.3版本正式發布 , 進一步推進了將分散的JavaScript工具鏈整合為單一解決方案的目標 。 然而快速擴張讓一些開發者質疑Bun是否試圖做得太多、太快 。
【Bun 1.3版本整合JavaScript工具鏈引發開發者爭議】Bun由Zig編寫 , 基于蘋果支持的JavaScript Core引擎 , 旨在實現高性能、Node.js兼容性以及為應用開發者提供一體化支持 。
創建者Jarred Sumner和團隊發布了近14000字的新功能介紹:支持熱重載的全棧開發服務器(意味著代碼更改會立即反映在運行的應用程序中);支持PostgreSQL、MySQL和SQLite客戶端的SQL API;Redis支持;增強路由;跨平臺編譯為獨立可執行文件;安全掃描器API;以及隔離安裝以最小化依賴沖突和問題 。
隔離安裝意味著包(庫)只能訪問明確聲明的依賴項 。 這通過在node_modules下創建特定于包的目錄來實現 , 依賴項存儲在其中 , 降低了包意外使用不同于其設計時使用的依賴項的風險 。
軟件工程師Dylan Conway聲稱 , 將JavaScript Core的垃圾收集器與Bun的事件循環集成(1.3版本的新特性)實現了空閑CPU時間減少100倍 , 空閑內存使用量減少40% 。 更密集的資源使用應該會轉化為更低的托管成本 。
團隊提到的一些新功能 , 如Redis客戶端 , 已經在之前的小版本更新中發布 , 但Bun快速演進毋庸置疑 。 項目范圍穩步擴大 。 文檔中的一條注釋表明\"長期來看 , Bun旨在提供一個一體化工具包 , 以取代當今常見的復雜、分散的工具鏈:Node.js、Jest、Webpack、esbuild、Babel、yarn、PostCSS等 。 \"
Bun 1.3被描述為系列版本的開始 , 下一步可能是發布Bake , 這是一個支持React服務器組件和服務器操作的內置服務器 。 Bake原本計劃與Bun 1.3一起發布 , 但Sumner在官方Discord論壇上表示\"它還沒有準備好 , 我們不想進一步延遲bun 1.3的發布 。 \"
距離2023年9月Bun 1.0發布僅兩年時間 , 但其受歡迎程度不斷增長;Sumner表示該工具包現在每月下載量超過500萬次 。 Bun用戶包括Anthropic , 該公司將其用于Claude Code CLI(命令行界面) 。
然而開發者對此看法不一 。 一位開發者表示:\"Bun已經變成了一個巨獸 。 幾乎涵蓋了某人在其環境中可能需要的每個功能\";而另一位則質疑\"我不確定我是否希望通常作為外部庫的所有內容都來自一個地方 。 \"
在快速發布新功能時質量有時也會受損 , 另一個因素可能是Zig仍在演進且仍處于預覽版 , 撰寫本文時最新版本為0.15.1 。 在Bun問題列表中 , 分段錯誤(非法內存訪問 , 如越界錯誤)報告并不少見 。
Bun在MIT許可下開源 , 但一些人對其背后的商業模式感到困惑 。 Sumner最初表示這將基于\"快速無服務器托管\" , 這也是Vercel采用的方法 , 其聯合創始人Guillermo Rauch參與了2022年Oven的融資輪 。
Reddit上一位用戶發現了\"Bun首個創收產品\"的職位空缺 , 該產品將\"將Bun的速度與現代AI能力相結合\" 。
Q&A
Q1:Bun是什么?它的主要目標是什么?
A:Bun是一個JavaScript運行時和工具包 , 由Zig編寫 , 基于蘋果的JavaScript Core引擎 。 它的主要目標是將分散的JavaScript工具鏈整合為單一解決方案 , 提供高性能、Node.js兼容性以及一體化開發支持 。
Q2:Bun 1.3版本有哪些新功能?
A:Bun 1.3版本新增了支持熱重載的全棧開發服務器、支持PostgreSQL/MySQL/SQLite的SQL API、Redis支持、增強路由、跨平臺編譯、安全掃描器API以及隔離安裝功能 , 還優化了垃圾收集器 , 實現了空閑CPU時間減少100倍 。
Q3:開發者對Bun快速擴張有什么擔憂?
A:一些開發者擔心Bun試圖做得太多太快 , 質疑是否需要將通常作為外部庫的功能都整合到一個地方 。 此外 , 快速發布新功能可能影響質量 , 分段錯誤等問題在Bun的問題列表中并不少見 。


    推薦閱讀