前言: JS執行環境除了常聽到的Node.js(2009 年推出)之外,還有後來的Bun(2022年推出,同樣也是要改善Node.js的缺點所誕生Runtime + 多合一工具包),以及要來討論的主角Deno(2018年推出)。
Bun
- 官網
- Github
- 開發者: Jarred Sumner
- 原生支援 TypeScript
- 使用Safari的JavaScriptCore引擎
- 2023年9月份終於推出1.0正式版本:
- Bun 是什麼? 為什麼要用 Bun? 它解決了哪些 Node.js 的問題?
- Bun vs Node.js
Deno
- 官網
- Github
- 與Node.js同開發者: Ryan Dahl
- 原生支援 TypeScript
- 與Node.js一樣使用V8引擎、以及Rust語言所構建的執行環境(Node.js使用C++)
- Deno Land(Deno的雲端Library、Modules)
Deno最大的特點就是引入模組不再過度依賴npm下載套件然後建立又肥又複雜的node_module目錄了,可使用CDN從雲端函式庫去引入,當然要使用npm 還是可以的。
- Deno Standard Modules: 標準函式庫
- Deno Third Party Modules: 第三方函式庫
- Deno Deploy: JavaScript應用的全球分散式serverless雲端平台,我自己的網站也是架設在上面,速度非常快
- Deno KV: Key-Value資料庫(NoSQL)
- ✨ JSConf EU 2018 歐洲大會演講(6月初): 我爲Node.js感到後悔的十件事
- ✨ 來台演講JSDC 2018(11月,富邦人壽大樓國際會議中心): Deno,A New Server-Side Runtime By Ryan Dahl
- Deno如何償還Node.js十大技術債:
- 😂 求不要更新了,老子学不动了
- Deno 入門指南
- 初探 Deno — 與 Node.js 的淺比較(IT鐵人賽)
Node.js十大技術債
- 沒用JavaScript非同步處理的Promise物件。
- 低估安全的重要。
- 採用gyp來設計Build系統。
- 沒有聽大家建議提供FFI而繼續用gyp。
- 過度依賴npm(內建package.json支援)。
- 太容易可require("任意模組")。
- package.json建立錯誤的模組概念(在同一目錄下的檔案就是同一模組)。
- 又肥又複雜的node_module設計和下載黑洞(往往下載npm得花上非常久的時間)。
- require("module")時沒有強制加上.js附加檔名。
- 無用的index.js設計。
內容如有誤,歡迎提出修正建議。