好程式設計師前端分享什麼是Deno,它與Node.js的區別
好程式設計師前端分享 什麼是 Deno,它與Node.js 的區別 , Node.js的建立者Ryan Dahl花了一年半的時間研究 deno ,這是一個新的 JavaScript執行時,可以解決Node的所有固有問題。
不要誤解我的意思, Node js它 本身就是一個很棒的伺服器端 JavaScript執行時,主要是因為它擁有 很 大的生態系統和 JavaScript。然而, Node.js的建立者Ryan Dahl 承認他應該考慮更多的 -安全性,模組和依賴性,僅舉幾例。
在他的辯護中,並不是說他可以想象平臺在如此短的時間內會增長多少。此外,早在 2009年,JavaScript仍然是這種奇怪的小語言,每個人都取笑,而且它的許多功能還沒有。
那麼什麼是 Deno,主要特性有什麼呢?
1. Deno 是一個基於 V8構建的安全的TypeScript的Google執行時引擎。
它建立了:
l Rust(Deno的核心是用Rust編寫的,node用C++編寫的)
l Tokio(以Rust編寫的事件迴圈)
l TypeScript(Deno支援開箱即用的JavaScript和typeScript)
l V8(谷歌在Chrome和node中使用的JavaScript進行時)
2. 它支援 T y pe2.8開箱即用,沒有package. j son,沒有npm 不追求相容 Node,透過 URL 方式引入依賴而非透過本地模組,並且在第一次執行的時候進行載入和快取,並僅在程式碼使用執行,依賴才會更新。
n 可以控制檔案系統和網路訪問許可權以執行沙盒程式碼,預設訪問只讀檔案系統可訪問,無網路許可權。 V8 和 Golang 之間的訪問只能透過 protobuf 中定義的序列化訊息完成;
n 最終建立單一可執行檔案;
n 支援 top-level 的 await ;
n 最終的 目標是相容瀏覽器;
n 可以作為庫引入,用於建立自己的 JavaScript runtime 。
這幾個特性,有 很多 個都是針對目前 Node Js 的痛點而來的,包括無 package.json 、依賴的引入和更新方式,針對的就是被廣泛吐槽的過大的。
同時,不 再 追求相容 node ,可以視為 ry 想徹底拋棄 node 包袱,打造一個更好的 JS 執行時。
它的安全性也是很放心的,它最重要的功能之一就是安全性很高,與 NodeJs 相反, Deno 預設執行沙箱中程式碼,這就意味執行是無權訪問。
我們來看看它的工作原理:
(async () => {
const encoder = new TextEncoder();
const data = encoder.encode('Hello world');
await Deno.writeFile('HelloWorld.txt', data);
await Deno.writeFile(' HelloWorld2.txt', data);
})();
該指令碼建立了兩個文字檔案,其中包含一條訊息。程式碼正在沙箱中執行,因此它無法訪問檔案系統。 HelloWorld.txt HelloWorld2.txt Hello world
另請注意,我們正在使用 Deno 名稱空間而不是 fs 模組,就像在 Node 中一樣。 Deno 名稱空間提供了許多基本的輔助函式。透過使用名稱空間,我們正在失去瀏覽器相容性 。
當然我們用到 Deno 的時候,會想到瀏覽器的相容性, Deno 旨在瀏覽器相容。從技術上講,在使用 ES 模組時,我們不必使用任何構建工具(如 webpack )來使我們的應用程式啊可以在瀏覽器中使用。
但是像 Babel 這樣的工具會將程式碼轉換成 ES5 版本的 JavaScript ,因此 即使在不支援該語言所用最新功能的舊版瀏覽器中,程式碼也可以執行。但這也是最終檔案中包含大量不必要的程式碼並使輸出檔案膨脹為代價的。
由我們決定我們的主要目標是什麼,並相應地做出選擇。
TypeScript 支援開箱即用
Deno 使得無需任何配置檔案即可輕鬆使用 TypeScript 。仍然可以用純 JavaScript 編寫程式並使用 Deno 執行它們而不會有任何麻煩。
Deno 是 TypeScript 和 JavaScript 的新執行時,是一個有趣的專案,現在已經穩定增長了很長一段時間。但是在它被認為是生產就緒之前還有很長的路要走。
藉助它的分散式方法,它需要從集中式軟體包登錄檔(即 npm )中釋放 JavaScript 生態系統。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2652079/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端分享什麼是前端同構渲染程式設計師Web前端
- 好程式設計師web前端分享如何自學前端?步驟是什麼?程式設計師Web前端
- 好程式設計師解析Web前端中的IoC是什麼程式設計師Web前端
- 好程式設計師web前端教程分享引用型別與基本型別程式設計師Web前端型別
- 好程式設計師web前端分享JavaScript到底是什麼?特點有哪些?程式設計師Web前端JavaScript
- 好程式設計師web前端學習路線分享瞭解AJAX是什麼程式設計師Web前端
- 好程式設計師web前端分享CSS元素型別程式設計師Web前端CSS型別
- 好程式設計師Java培訓分享之RMI與RPC的區別程式設計師JavaRPC
- 好程式設計師Java培訓分享Java EE與Java的區別程式設計師Java
- 好程式設計師web前端分享移動前端開發和web前端開發的區別程式設計師Web前端
- 好程式設計師web前端分享DIV+CSS3和html5+CSS3有什麼區別程式設計師Web前端CSSS3HTML
- 好程式設計師Python教程分享Python到底是什麼程式設計師Python
- 好程式設計師Java培訓分享Java包是什麼?程式設計師Java
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- 好程式設計師Web前端分享前端CSS篇程式設計師Web前端CSS
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享int和Integer的區別程式設計師Java
- 好程式設計師Java培訓分享treeset和hashset的區別程式設計師Java
- 什麼樣的社群是好的程式設計師社群?程式設計師
- 產品經理與互動設計師的區別是什麼?
- 好程式設計師web前端教程之Node.Js流程程式設計師Web前端Node.js
- 好程式設計師技術分享html5和JavaScript的區別程式設計師HTMLJavaScript
- 好程式設計師Java分享為什麼要使用Docker程式設計師JavaDocker
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 好程式設計師分享Web前端開發工具程式設計師Web前端
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- 好程式設計師web前端分享前端 javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享為什麼那麼多人使用vue.js程式設計師Web前端Vue.js
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 好程式設計師Python培訓分享print和return的作用及區別程式設計師Python
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 黑客和程式設計師有什麼區別?程式設計師目標是成神,黑客目標是弒神!黑客程式設計師
- 好程式設計師Java教程分享meta標籤什麼作用程式設計師Java
- 好程式設計師:web前端解答為什麼要學JavaScript程式設計師Web前端JavaScript
- 碼農與程式設計師的區別程式設計師