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

兩年過去了,誰還記得曾想取代Node.js的他?

開發 前端
作為Node.js?的競爭者,Deno似乎并沒有達到「取代前者」的目標。甚至,他在前端社區的聲量也越來越小。那么,這兩年Deno?都經歷了什么,未來他會取代Node.js么?

大家好,我卡頌。

22年11月14日,Deno發布了v1.28,距離他第一個穩定版本v1.0.0發布(2020年5月13日)已過去2年。

作為Node.js?的競爭者,Deno似乎并沒有達到「取代前者」的目標。

甚至,他在前端社區的聲量也越來越小。

那么,這兩年Deno?都經歷了什么,未來他會取代Node.js么?

與Node.js的不同

同為「js運行時環境」,Deno與Node有什么不同呢?

拋開各種細枝末節,他們最大的不同在于 —— Deno將「開放」放在很重的地位。

什么平臺是最開放的呢?答案是web。

所以,在Deno?設計的方方面面都能看到web的影子。比如:

  • 原生支持很多web API(比如fetch、URLSearchParams、Web Workers...)。
  • 全局變量是與瀏覽器一樣的window對象。
  • 原生支持瀏覽器標準的ESM規范。

那么,這些API?、標準與「開放」有什么關系呢?這里講個小故事。

Deno?的作者「Ryan Dahl」同時也是Node的作者。

在實現Node之初,他將工作重心放在「事件驅動模型」的實現上。這時,有個「項目中引入的模塊該如何解析」的問題亟待解決。

他接受了NPM?提出的package.json?建議。簡單的說,Node?中的require?方法會去package.json?中尋求如何解析模塊(dependencies?、devDependencies等字段)。

后來,NPM?逐漸成為Node中最流行的包管理器與事實上的標準,兩者逐漸深度捆綁。

而NPM?是一家私人公司,且之后被Github?收購。Github又在微軟旗下。

可以說,占領導份額的Node第三方依賴管理是受私人大公司(微軟)控制的。

反觀Deno?,原生采用ESM規范,最初有兩種模塊引入方式:

  • 從本地路徑引入

比如:

import xxx from './a.ts';
  • 從遠端url引入

比如:

import * as utils from "https://deno.land/std@0.166.0/io/util.ts";

相比于Node中引入一個模塊就等于引入一個npm包,Deno以url的方式引入模塊顯然是更開放的。

畢竟,web最不缺的就是url鏈接了。

Ryan的理想

從上面的故事也能看出,「Ryan Dahl」離開Node?團隊,創立Deno是充滿了理想主義色彩的。

在為Deno預熱的JS ConfEU 2018[1]中,他也明確表示:

「Deno不會和Node兼容,不這樣的話開發者最終實現的還是Node模塊」?

圖片

在最初的正式版本中,Deno也確實踐行了自己與Node不同的風格,針對Node眾多缺陷提出了解決方案,比如:

  • 針對Node的安全性問題,加強了原生API訪問文件系統與網絡的限制
  • 舍棄了package.json
  • 原生支持TS

這些特立獨行確實引起了開發者熱議,但并未達到很好的市場反響。

畢竟,Deno首個正式版發布時,Node已經問世11年了。

在Node問世時,Node團隊只需要持續、穩定的迭代Node核心API,就會有大量的JS開發者為Node生態貢獻優質第三方模塊。

而在Deno面世時,又會有多少開發者愿意為Deno貢獻第三方模塊呢,用Node現成的包不香么?

于是,Deno親自上陣,滿足了開發者的一些剛需,比如:

  • 開箱即用的工具鏈工具(linter、formatter、test-runner、bundle)

再加上原生支持TS,可以說一個Deno初始項目就具備了一整套工程化最佳實踐。

對比同為Rust編寫的工具鏈工具Rome(迭代了2年,發布了一個linter,一個formatter)就能發現,Deno的迭代速度可以說是非常快了。

  • 應用框架

比如對標express的oak,以nobundle為賣點的全棧框架fresh。

  • 發布系統

與Deno深度整合的Deno Deploy。

這些努力似乎并沒有取得預期的效果,對比Deno(藍色)與Node(紅色)的Google趨勢。

Node的趨勢整體走高,而Deno的走勢極為平坦(只在20年5月v1.0發布時有一點起伏):

圖片

現實

今年6月,Deno?獲得由紅杉領投的2100w刀的A輪融資,用于發展Deno Deploy。

資本為了獲得更好的回報,勢必需要更大的用戶基數。而Deno?最大的潛在用戶群體,就是Node開發者了。

理想主義的Ryan不得不面對現實。

在最近的v1.28中,Deno?宣布已顯著提高對NPM?包的兼容性,現在開發者可以在Deno?中使用超過130w個NPM包。

在這背后,Deno?做了大量的Node.js?適配工作(在Deno?中實現Node?原生API的適配層)。

曾經「替代Node.js」的目標,也逐漸變為「成為更好的Node.js」。

這2年的經歷對Deno來說,就像一個初入職場的熱血大學生被社會磨平棱角的過程。

總結

  • Deno涼了么?

不僅沒有,而且已經發展為融資2600w刀,擁有17名員工的公司。

  • Deno?會取代Node么?

在可預見的未來,Deno?都會是「小而美」的狀態。在某些細分領域逐漸蠶食Node的市場份額。

  • 我應該使用Deno么?

如果你要「寫個小腳本」或者「搞個小項目」,相比于Node?,Deno?的開發體驗直接拉滿。而且白嫖Deno Deploy不香么?

  • 還有什么推薦Deno的理由么?

有,你看看隔壁Go?那凸眼睛火腿腸。再看看Deno的小恐龍敲可愛有木有~

參考資料

[1]JS ConfEU 2018:https://www.youtube.com/watch?v=M3BM9TB-8yA。

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2023-10-26 06:51:29

React編譯器

2021-02-03 10:45:00

IPv6IPv4網絡協議

2020-05-29 15:33:28

Node.js框架JavaScript

2023-11-07 12:03:53

機器學習目標檢測

2020-12-18 14:56:33

技術人工智能人臉識別

2013-06-24 11:16:04

移動互聯網廣告盈利移動產品

2016-01-08 09:48:54

IPV6網路協議地址

2013-05-09 10:24:28

企業軟件軟件開發

2021-09-27 11:00:06

CookieSession瀏覽器

2018-01-17 14:00:32

開源基礎設施企業平臺

2021-08-15 22:58:43

手機折疊手機三星

2017-06-14 17:03:25

微軟自然語言處理技術

2017-11-08 11:13:14

大數據Spark數據傾斜

2011-02-18 11:15:25

Android

2024-12-30 07:05:00

AI費馬大定理人工智能

2015-03-18 09:54:13

內容為王服務為王大數據

2020-12-21 14:20:13

技術資訊

2020-10-29 18:36:02

DenoNode.jsJavascript

2009-04-08 09:09:47

2013-11-01 09:34:56

Node.js技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91不卡在线| 久久婷婷国产麻豆91 | 一级国产精品一级国产精品片 | 国产精品久久久久aaaa | 国产一区二区不卡 | 国产激情免费视频 | 成人精品一区二区三区四区 | 欧美男人天堂 | 一级片在线观看 | 日韩在线视频一区 | 免费成人高清在线视频 | 国产乱码精品一区二区三区忘忧草 | 91视频大全 | 欧美精品欧美精品系列 | 日日骚av| 91超碰在线| 性欧美精品一区二区三区在线播放 | 午夜精品网站 | 亚洲精品久久久久久一区二区 | 久久久久一区二区三区 | 久久美国| 伊人伊人伊人 | 午夜爽爽爽男女免费观看 | 欧美黑人体内she精在线观看 | 色爱区综合 | 免费看色 | 亚洲国产自产 | 亚洲精品久久久久久久久久久 | 可以在线看的黄色网址 | 国产成人免费网站 | 精品一区二区电影 | av网站免费在线观看 | 自拍偷拍中文字幕 | 国产精品亚洲综合 | 在线观看精品 | 天天爽综合网 | 午夜在线视频一区二区三区 | 久久精品免费一区二区 | 亚洲综合视频 | 亚洲aⅴ精品 | 欧美 日韩精品 |