成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

殺死Node.js!全新JS運行時“快到飛起”!

譯文 精選
開發 前端
“如果你需要速度和簡單、輕量級的體驗,那就選擇Bun。如果你想要一個更廣泛的生態系統和社區支持,那么Node.js是一個可靠的選擇。你甚至可以使用這兩種方法使你的JavaScript應用程序強大而高效。”

編譯丨千山

正式開始前,我們先簡要解釋一下什么是JavaScript運行時,以及為什么我們應該關心它的速度。

想象一下,你用JavaScript寫了一個故事,你需要有人大聲讀出來。JavaScript運行時就像一個友好的“敘述者”,讓你的故事生動起來!它是JavaScript故事被讀取和執行的特殊環境。從技術上講,這個“敘述者”由JavaScript引擎等組件組成,它是運行時的核心,負責理解和運行代碼。

Bun就是一個全新的JavaScript運行時。9月8日,Bun1.0正式發布,標志著其已經達到了穩定的生產就緒狀態。

Bun的開發人員說,它被定位為Node.js的直接替代品,旨在消除復雜性和緩慢性,通過消除“層層疊疊的工具層”來簡化JavaScript開發。

1、挑戰Node.js:集運行時、打包工具、測試框架于一體

“Bun是一個用于構建、運行測試和調試JavaScript和TypeScript的完整工具包,從一個小腳本到一個完整的服務器端渲染應用程序,”創建者Jarred Sumner在視頻演示中如是說。

與Node.js不同,Bun使用蘋果的JavaScriptCore引擎,并使用Zig構建。其設計目的是使應用程序更快,而不需要增加代碼的額外復雜性。據Bun團隊介紹,其主要優點在于:

  • 當使用Bun時,你不需要node,它有內置的監視模式。Bun使Node.js工具(包括node、npx、nodemon、dotenv或cross-env)變得不必要。
  • Bun可以運行不同的文件,如 .js,.ts,.cjs,.mjs,.jsx和 .tsx文件,這些文件可以取代tsc和babel等轉譯器。
  • Bun是一個與jest兼容的測試運行器,支持快照測試、代碼覆蓋和模擬。因此你可以編寫單元測試,而無需安裝額外的依賴項。
  • Bun也是一個JavaScript打包器,具有“一流”的性能和與esbuild兼容的插件API。
  • Bun也是一個與npm兼容的包管理器,擁有yarna和npm所擁有的所有熟悉的命令。
  • 既支持EcmaScript模塊,也支持CommonJS模塊系統。

雖然它聲稱的“替代品”一說也受到了開發者質疑,但從上述優點可以看到,Bun的確試圖將運行時、打包工具、測試框架等功能融合在一個工具中,從而解決工具碎片化導致的開發效率低等問題。

不過,Bun正式發布的1.0版本和之前的測試版還是有所不同。開發者Jarred Sumner在Twitter上分享說,發布Bun 1.0版本最困難的事情之一是刪除了作為測試版一部分的前端服務器。

Sumner在上周四發布后的Twitter問答中表示:“我希望我們能有更多的時間讓Bun更適合前端開發。”“這對它來說并不壞——你可以使用你已經使用的工具。但我仍然認為將運行時與前端構建工具直接集成在一起是一個巨大的機遇。”

他指出,用戶的反饋表明,刪除前端服務器沒有問題,社交媒體上對這一消息的大多數反應都是積極的。發布一天后,關于Bun的熱議都是關于它的速度和易用性。

2、為速度而生,但也不僅是速度

Bun最令人稱道的是它的速度。它之所以敢于挑戰Node.js,最大的底氣也來自于這里。

根據發布直播中Bun團隊的介紹,Bun的寫入速度是Node.js的三倍,讀取文件的速度是Node.js的三倍。Bun安裝包的速度比 npm快29倍;在JavaScript測試中,它比Jest快13倍;打包速度比 esbuild 快1.75倍。

Bun所屬的開發公司Oven的產品經理Ashcon Partovi特別提到,Bun可以用Bun run代替任何npm run命令,npm大約需要150毫秒才能在MacBook Pro上開始運行腳本,這與Bun的30毫秒形成了鮮明對比。“Npm感覺明顯滯后。而Bun給人的感覺是瞬間的。”

Bun的競爭對手是Node.js和基于Rust的Deno。軟件工程師詹姆斯·科尼克特意比較了Bun、Node.js和Deno這三種運行時,結果顯示Bun的性能優于后兩者。

“在Zig的支持下,Bun的目標是成為一個一體化的運行時和工具包,重點是速度、打包、測試和與Node.js包的兼容性,”科尼克寫道:“它最大的吸引力之一是它的性能,它明顯比Node.js和Deno都快。”

他指出,Bun維護者提供了一個運行HTTP處理程序的示例基準,該處理程序使用React呈現服務器端頁面。Bun每秒處理大約68000個請求,而Deno和Node.js則分別處理29000和14000個請求。

在他自己對Bun早期版本的測試中,科尼克發現Node.js平均每秒處理21.29次查詢,而Deno的平均每秒處理43.50次。Bun平均每秒處理81.37個查詢。

同時,科尼克還發現,在Node.js, Deno和Bun之間的另一個比較中,Bun是處理并發連接最快的,每秒的請求量也相當高,例如,在10個并發連接的情況下,Bun每秒可以實現11萬個請求,而Node.js每秒可以實現6萬個請求,Deno每秒可以實現6.7萬個請求。

當然,速度并不是運行時要考慮的唯一因素。

開發人員markthree也指出每個運行時都有其優勢:“Bun更關注性能,所以就目前的性能而言,它比其他兩個運行時要好得多。Deno是安全的代名詞,就我來說,我可以安全地使用來自社區的軟件包,而不用擔心它們對我的系統做我不知道的事情。Node現在也開始大力推進性能和安全性。總而言之,競爭是好事,有利于推進JS運行時的進化。”

3、Linux和macOS版本已就緒,Windows版本尚屬“實驗性”

總體來說,很多人對于初出茅廬的Bun還是表示了歡迎。

因為基于Node的開發環境往往涉及不同工具的集合,因此很難管理,而Bun和Deno都簡化了這一點。與Deno相比,Bun更傾向于與Node.js和CommonJS的兼容性,這對許多開發人員來說是一個加分項。

不過,Bun仍有很大的提升空間。比如Bun團隊為macOS和Linux提供了生產就緒的本地版本,但團隊還在努力讓Windows版本正常工作。此次發布會上,Bun面向Windows的版本,被稱為“高度實驗性”。到目前為止,Bun只在Mac、Linux和Windows Subsystem for Linux (WSL)中工作。

根據文檔,Windows版本目前只支持Bun運行時,“包管理器、測試運行器和打包器已經被禁用,直到它們變得更穩定為止”。

4、應該切換到Bun而不是Node.js嗎

JavaScript世界中,Bun作為新生代展現出了有趣的一面:有一些Node.js沒有的整潔的內置功能,而且速度上也的確很快。如果你正在考慮在你的下一個項目中使用什么,試一下Bun也未嘗不可。

至于如何在幾種JS運行時中取舍,開發人員Shalini Tewari的看法頗具代表性。

“Node.js、Bun和Deno都是服務器端js運行時,但它們的目標完全不同。在Bun和Node.js之間的選擇取決于你的項目需求。”

“如果你需要速度和簡單、輕量級的體驗,那就選擇Bun。如果你想要一個更廣泛的生態系統和社區支持,那么Node.js是一個可靠的選擇。你甚至可以使用這兩種方法使你的JavaScript應用程序強大而高效。”

參考鏈接:

https://medium.com/javascript-in-plain-english/node-js-is-dying-bun-1-0-is-changing-the-javascript-game-2892d4ff6921

https://thenewstack.io/bun-1-0-ships-as-node-js-and-deno-alternative/

https://www.infoworld.com/article/3706293/bun-10-is-out-of-the-oven.html

https://devclass.com/2023/09/11/bun-1-0-javascript-runtime-released-complete-with-experimental-windows-version/

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-09-26 15:22:02

2024-03-21 09:15:58

JS運行的JavaScrip

2023-09-27 16:52:13

2024-02-20 18:32:20

Node.jsJSJavaScrip

2021-08-27 00:21:19

JSJust源碼

2024-03-15 11:19:41

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2021-07-09 00:24:10

No.jsNode.js原理

2013-11-26 16:49:55

Android開發運行時KitKat

2022-10-08 00:00:00

V8channel對象

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2011-11-10 08:55:00

Node.js

2012-10-24 14:56:30

IBMdw

2021-12-25 22:29:57

Node.js 微任務處理事件循環

2022-10-08 00:06:00

JS運行V8

2022-05-23 10:26:50

Node.jsJavaScrip
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩一区不卡 | 日本精品视频一区二区 | 91 在线 | 日韩精品极品视频在线观看免费 | 亚洲欧美日韩一区 | 欧美成视频 | 久久机热 | 欧美成年网站 | av在线一区二区 | 欧美精品一区二区在线观看 | 欧美在线国产精品 | 精品一区二区三区在线观看国产 | 视频一区二区在线观看 | 久久久久久国产精品免费免费狐狸 | 亚洲精品福利视频 | 天天操夜夜操 | av片免费 | 九久久 | 一区二区亚洲 | 国产视频中文字幕 | 精品久久久久久亚洲综合网 | 亚洲黄色一级 | www.成人在线视频 | 精品国产18久久久久久二百 | 国产一区二区三区四区在线观看 | 欧美日韩一区二区三区四区 | 国产精品久久久久久久久久久久午夜片 | 视频一区二区三区在线观看 | 99精品视频一区二区三区 | 九九综合 | 国产91 在线播放 | 一区二区在线免费观看视频 | 精品久久久久久亚洲精品 | 欧美日韩久久 | 97国产在线视频 | 国产一级一级毛片 | 亚洲啊v | 99re66在线观看精品热 | 91精品国产色综合久久 | 精品粉嫩超白一线天av | 国产精品久久国产精品99 |