天天看點

Deno 1.0 釋出:為 JavaScript 和 TypeScript 提供安全運作時環境

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

經過了為期 2 年的開發,Deno 終于在 2020 年的 5 月份完成了 1.0 版本。其官方網站宣稱,Deno 為 JavaScript 和 TypeScript 提供了一個安全的運作時環境。聽起來是不是和 Node.js 類似?沒錯,就是這樣,因為 Deno 是由 Node.js 的原班人馬開發的。Ryan Dahl(Deno 和 Node.js 作者)之前發表過一篇文章——“關于 Node.js 最讓他後悔的 10 件事”。為了解決文章中提到的問題,他創造了 Deno。和 Node.js 一樣,Deno 可以在 V8 引擎上運作 JavaScript,TypeScript 和 WebAssembly 應用。對于應用開發者來說,相對于 Node.js,在使用 Deno 開發時有些地方是需要注意的。

在子產品方面,Node.js 是二進制子產品化檔案,而 Deno 是單個二進制檔案應用。它沒有使用像 NPM 那樣複雜的依賴管了解決方案。取而代之的是,當開發人員需要定義依賴關系時,隻需要在源碼中直接使用 URL 即可。截至目前,已經大約有超過 500 個第三方的 Deno 子產品可以供使用。看看這種方式是否可以在企業應用中進行推廣,将是一件很有趣的事情。是以,Deno 通常不相容那些為專門為 Node.js 編寫的 NPM 包。不過,移植并非難事,因為它們使用了相同的程式設計語言和架構。Deno 已經支援了大量的 Node.js 内置庫對象。與 Node.js 相比,Deno 的運作時預設就是安全的,是以如果應用需要通路檔案系統或者網絡,那麼開發者就需要進行額外的聲明。

在 API 程式設計方面,Deno 優先支援 TypeScript。Deno 的運作API 大量的采用了TypeScript 或JavaScript 中的Promises 和async/await API,這些API 在Node.js 被設計時還不被支援。除了TypeScript 和JavaScript,Deno 應用還可以加載和執行WebAssembly 的位元組碼程式。例如,在Deno 中, Sqlite 子產品就被從 C++ 編譯成了 WebAssembly。此外,開發者還可以使用 Rust 對 Deno 進行擴充,這将允許使用 Cargo(Rust 的依賴和包管理系統)來管理 Deno 的插件和附加元件。

在底層方面,Deno 使用 Rust,而沒有像 Node.js 那樣使用 C 或者 C++ 來通路底層 V8 引擎。同時,在支援 web 應用的高并發時,Deno 使用了 Rust 的 Tokio ,而不是 libuv。

雖然 Deno 才剛剛完成 1.0 版本,但是它已經得到了很多業内知名人士的支援。其中,有諸如 AWS Lambda , Azure Functions 和 Google Cloud Run 之類主流雲供應商;也有來自 Begin.com 的布賴恩·勒魯 (Brian Leroux),他同時還在 AWS 上對 Deno 進行了測試,且宣稱 Deno 的啟動時間隻需要短短的 6 秒;還有 JetBrain 的 WebStorm (最受歡迎的 JavaScript 的 IDE)也宣布支援 Deno。

然而,在對 Deno 的未來一片看好的情況下,依然還有大多數的開發人員相信 Node.js 會繼續存在下去,且未來 Deno 很難超過 Node.js。這些開發者們的理由是 Node.js 有龐大的生态系統和大量的企業應用。

Fernando Doglio(Node.js 專家和書籍作者)說到:

Deno 目前還隻是一個經過了 2 年研發的想法,還沒有在生産系統進行實踐和測試。是以它現在還隻适合給早期使用者玩玩。

在 Deno1.0 版本釋出之後的三周裡,Deno 團隊已經釋出了5 個小版本,主要是為了修複一些bug。Deno 的下一個版本是 v1.1 ,該版本的計劃是對 CLI、公共 API 及其 Rust 插件系統進行改進。要了解更多關于 Deno 的未來計劃,請檢視即将在公開的 OpenJS 世界大會上 Ryan Dahl 的演講。

Deno 是基于 MIT 協定的開源軟體。如果想對 Deno 項目進行貢獻和支援的話,需要遵循它的貢獻指南。

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-06-23

本文作者:Vivian Hu

本文來自:“

InfoQ

”,了解相關資訊可以關注“[InfoQ](

https://www.infoq.cn/article/RGh6YzkS4viHey2hiKk1

繼續閱讀