雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

Deno 1.0,5 月 13 号見
2018 年 5 月,Node.js 之父 Ryan Dahl 釋出了新的開源項目——Deno。從項目名就可以看出其與 Node.js 千絲萬縷的聯系。
官方文檔介紹,Deno 是一個 JavaScript/TypeScript 運作時,具有安全的預設設定和良好的開發體驗。建構在 V8 引擎、Rust 語言和 Tokio 之上。(最初的 Deno 版本是用 Go 語言寫就,但在第二版中移除了 Go 轉而用 Rust 語言替代,因為後者具有更好的安全性。)
Deno 的目标是為現代程式員提供一個高效、安全的腳本環境。
在業界看來,Deno 目前的狀态更像是一個 Demo,而 Ryan 本人當時也表示“Deno 與 Node 最大的差別在于,Node 可以用于工作,而 Deno 還不行”。但對前端開發者來說,Deno 确是一個值得學習的新項目。
此前 Deno 項目中有關 1.0 版本的 issue 做了更新,Ryan 表示:
在努力做好(Deno)這件事和推出一款可用的産品之間很難取得平衡。因為還沒有在開發工具支援特性上取得實質進展,官方團隊再次推遲釋出日期。官方團隊進行了詳細的讨論,得出結論是 2 個月的時間足夠了。巧合的是,這是自 Deno 問世以來的兩周年紀念日。是以,我們将 2020 年 5 月 13 日定為 1.0 版本釋出日期。我們鼓勵貢獻者在 4 月 20 日之前對 API 進行重大修改——在那之後,我們将對 API 進行完善和 bug 修複。當然,在 1.0 之後,API 将繼續發展和改進,但是我們将為一些接口提供顯式的穩定性保證。
Deno,這個 Node 之父的 Demo 項目,終于迎來了正式發版之日。
Node.js,并未失寵
Deno 釋出之初,前端圈不少人分析其将是 Node.js 的替代品,将其稱為”下一代 Node“。
狼叔此前在應前端之巅約稿時有提到,Node.js 的意義具體而言有兩方面:
首先它打破了原有的前端邊界,之前應用開發隻分前端和 API 開發。但通過引入 Node.js 做 BFF 這樣的 API proxy 中間層,使得 API 開發也成了前端的工作範圍,讓後端同學專注于開發 RPC 服務,很明顯這樣明确的分工是極好的。
其次,在前端開發過程中,有很多問題不依賴伺服器端是做不到的,比如場景的性能優化,在使用 React 後,導緻 bundle 過大,首屏渲染時間過長,而且存在 SEO 問題,這時候使用 Node.js 做 SSR 就是非常好的。
以上可以看出,Node.js 在眼下的大前端布局裡的重要性。
另一方面,Node.js 社群的生态和繁榮度發展仍舊十分迅速。此前 InfoQ 翻譯的一篇 Node.js 基金會的調查報告顯示,Node.js 的使用量仍然在快速增長,超過¾的參與者期望在來年擴充他們的使用場景,另外和前一年的報告相比,Node 的易學程度有了大幅提升。
而根據 ModuleCounts.com 的資料,Node 的包注冊中心 NPM 每天會增加 507 個包,相比下一名要多 4 倍多。2018 年 Stack Overflow 調查也有類似的結果,JavaScript 是使用最廣泛的語言,Node.js 是使用最廣泛的架構。
更進一步,Serverless 技術的火爆也帶來了 Node.js 勢頭的水漲船高。主流 Serverless 廠商紛紛把寶押在 Node.js,因為看上了 JavaScript 工具的豐富生态,再加上 Node.js 的輕量化、容易分散與水準擴充、各種作業系統都容易運作的特性,将 Node.js 作為無伺服器服務優先支援的架構,這也讓 Node.js 更适合用于超大規模部署的應用。
Ryan Dahl 最初并沒有意識到 Node.js 會産生如此大的影響,他将其歸功于社群的持續改善,進而獲得了越來越成熟的 Node.js 架構。這也從另一方面揭示了,對于一款成功的開源軟體 / 架構而言,技術上的實作隻是其中一步,如何形成完整的生态、活躍的社群,才是其獲得長久發展的關鍵。
對于 Deno 而言,基本功能在 5 月 13 号以後應該就齊全了,但它要解決的問題還有很多。
這次,請别刷學不動了
我原本沒想發明 Node.js,而是想用 Haskell 語言完成我的項目,但是失敗了。我又不夠聰明,沒有能力改進 GHC(Haskell 語言的運作時),隻好發明新的工具。
Ryan Dahl 在接受采訪時曾表示,自己造 Node 輪子的原因在于自己不夠聰明,沒有能力改進已有工具,是以隻好發明新的工具。這不禁讓人回想起了他創立 Deno 之前的一句抱怨——“(現在的)Node.js 太難用了”,由此看來,他可能是真的認為發明新輪子比改進舊輪子省事兒。
2018 年 5 月,Deno 上線 GitHub 之初,就有許多國内開發者在 issue 區灌水,“别更新了,學不動了”。前端之巅認為,這種“中國式”的程式員幽默,并不适宜于用在一個正式項目的 issue 區,考慮到文化差異的問題,這種“幽默”不僅顯得更加不合時宜,而且會造成進一步對中國開發者的誤解。
對于絕大部分開源項目而言,issue 的首要目标是為項目維護者而不是項目使用者提供服務。issue 的意義在于追蹤 bug、新增 feature、推動項目進度等有助于項目發展的事件,而不是類似 BBS 的無聊灌水。
技術的更新換代是正常發展規律,“别更新了,學不動了”最終也會被“真香”所取代。對于新陳代謝尤為迅猛的前端領域而言,前端開發者們更應該保持對技術的熱愛,不要把自己局限在“切圖仔”的狹小天地裡。
最後送給大家三條建議:
1.不要糾結于開發工具——不管是庫、程式設計語言還是平台。盡可能使用原生的構件。不要歪曲技術,也不要歪曲了問題本身。為要解決的問題選擇合适的工具,否則你要為你所選擇的工具重新安排你的工作。
2.遠離“炒作驅動開發”,但你要去了解它們,做一些嘗試。
3.走出舒适區,每天都要學習。把學到的東西分享出來。如果你以大師自居,就不是在學習。接觸更多的程式設計語言、技術、文化,保持一顆好奇心。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/zhibo立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-04-08
本文作者:小智
本文來自:“
InfoQ 微信公衆号”,了解相關資訊可以關注“
InfoQ”