Node.js 2021年開發者報告解讀:健康穩步的發展中
很多人覺得Node.js沒有往年那麼火了,事實上不是這樣的,Node.js社群健康穩步的發展中,主要是從效能好向好用轉變,在易用性上有很大提升,從Node.js原始碼更新的內容看,大抵如此。Node.js Diagnostics Working Group是近二年Node.js社群的重點工作組,Node.js 14版本之後的大部分功能特性都是這個工作組推動的。早在2015年,有2個跟蹤工作組tracing WG 和事後分析工作組 postmortem WG,在2017年合併到Diagnostics WG。核心產出是async_hooks, profiling, tracing, dump debug, report等,都是在易用性和好用性上做提升。讓每個Node.js開發者更低門檻的提升Node.js應用的開發體驗。
秦粵老師在《浮華過後的Node.js》分享裡,也表達了同樣觀點,他用的是產品化平緩期,也是健康穩步的發展的意思。

社群方面,Web框架已經沒有多少空間,以特性取勝的框架,應該不會很多,比較期待Egg3。像fastify這種,修改Node.js機制,在效能領域深耕的框架,目前看是比較有作為的。pnpm是有創新的,但程式碼是有點可讀性不太好。我更加喜歡rushstack對menorepo的改進,大規模程式設計正規化還需要探索。除了去年提的midway-hooks,easy-monitor,看起來remix和morden算新,但還沒有超出之前的範疇。
下面結合《Node.js開發者2021報告》內容,我們詳細解讀一下Node.js 2021年的情況。這份解讀是根據冰森&狼叔直播內容整理的,要點如下。
Node.js 開發者 2021 報告原文:https://nodersurvey.github.io/reporters/
或點選閱讀原文直接檢視。
1)開發框架變化較大,造輪子變少,TS變多,使用企業級框架變多
去年express佔比還非常高,今年企業級框架變多,尤其是大而全的框架更受歡迎。

Egg在國內普及率很高,而Midway和Nest增長較快,其實和TS普及有一定關係。
2)版本更新變化較大,從Node 12升級到Node 14,升級比較積極
去年Node.js主要是使用Node 12,2021年Node 14佔比將近一半,更新還是較快的。
3)吐槽變多,意味著用的人變多,趨於成熟
C++之父Bjarne Stroustrup說過:世界上只有兩種程式語言,一種是整天被人罵的,還有一種是沒人用的。
大家對Node.js吐槽變多,實際上是在應用場景上使用較多,不再是針對於某些特性而進行吹捧。迴歸理性,在真實應用場景上,分佈廣泛,核心圍繞API和BFF層,CLI&工具。
4)出圈:年齡分佈較去年比變大,使用工種也變得比較豐富。
除了應用場景上,分佈廣泛外,非前端以外的開發者相關角色也有很大比例的提升,比如架構師,技術總監,專案經理等都一定程度上使用Node.js。可以說Node.js走出了前端圈,面向更大群體提供服務。另外受訪者的年齡分佈也變大了,這和出圈是有直接關係的。
5)使用困惑:效能優化,記憶體洩漏以及npm依賴
以往對Node.js困惑最多的是非同步流程控制,隨著async/await的普及,這個問題已經慢慢在弱化。隨著開發者使用Node.js深度增加,對效能優化,記憶體洩漏更為關注,這也是比較容易理解的。

6)未來:從業經驗越高則越關注效能和 Serverless
關注效能比較容易理解,關注Serverless最主要是的原因是Serverless可以做到低運維甚至是0運維。運維作為Node.js開發者必備技能,Serverless的出現使得很多非專業Node.js也能輕鬆搞定Node.js各種服務端場景。


推薦閱讀
-
天豬《EggJS 的前世今生與未來》,比較期待Egg3,easy-monitor作者一君也加入Egg3專案組了 https://www.yuque.com/atian25/blog/egg-1to2to3
-
秦粵 《浮華過後的Node.js》連結稍後給出來
參考
-
原文 https://cnodejs.org/topic/6108bbc2a5d29d175c2d4208
-
報告 https://nodersurvey.github.io/reporters
如果大家想參與討論,歡迎回復
關注 「Alibaba F2E」 微信公眾號 把握阿里巴巴前端新動向
- 中後臺 CSS Modules 最佳實踐
- “1s? 我要0s” -- 阿里雲安全產品1秒戰役總結
- 建設下一代 Web 開放技術——WebContainer
- ECMAScript 雙月報告:裝飾器提案進入 Stage 3
- 淺談Web容器設計的邊界和目標
- Observable 前端防腐層專案實戰
- 磁貼布局在釘釘宜搭報表設計引擎中的實現
- 你應該瞭解的 ECMAScript 函式操作符相關提案的最新進展
- 飛豬微信小程式建設總結
- Node.js Web 框架再進化 - 面向前端與未來標準
- 阿里低程式碼引擎 LowCodeEngine 正式開源!
- 為什麼我們需要 TS ?
- 大淘寶中後臺頁面無程式碼生產新模式探索
- 開源表單方案 Formily 的核心設計思路
- 視覺化大屏的效率困局 - DataV 6.0 低程式碼業務元件開發
- 關於依賴管理的真相 — 前端包管理器探究
- 餘額寶年年有餘中的 lottie 攝像機
- V8 JS AOT化的探索與實踐
- 淺談 Node.js 熱更新
- 開發一款專屬的 VSCode 程式碼提示外掛