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 LambdaAzure 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://www.infoq.com/news/2020/06/deno-1-ready-production/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章