Node.js 是過去十年最具影響力的伺服器技術嗎?

Node.js 是過去十年最具影響力的伺服器技術嗎?

摘要:眾所周知,Node。js 具有獨特的優勢,可以讓許多為瀏覽器編寫 JavaScript 的前端開發者,無需學習不同的語言,即可編寫除客戶端程式碼之外的伺服器端程式碼。在 Node。js 中,可以毫無問題地使用新的 ECMAScript 標準,還可以透過執行帶有標誌的 Node。js 來啟用特定的實驗性功能。本文根據一位開發者在《Is Node。js THE most influential server tech of last decade?》,總結過去 Node。js 產生的影響力。

整理 | 朱珂欣

出品 | CSDN(ID:CSDNnews)

在 Node。js 未誕生之際,許多開發者會用 JavaScript 寫一些瀏覽器指令碼、動態特效,主要用於前端頁面互動。2009年 Node。js 誕生,JavaScript 開始不只運行於瀏覽器,還可以運行於服務端,這無疑打通了前端與後端的任督二脈。

Node。js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。它的出現為 JavaScript 服務端開發引入了很多創新思維和方法,已經幫助了很多開發者。

那麼,Node。js 究竟產生了怎樣的影響力呢?

Node。js 給開發者帶來了什麼

一位開發者在《Is Node。js THE most influential server tech of last decade?》的文章中闡述了對 Node。js 的親身使用體驗。他表示,當開發人員不知道如何使用技術開發一個合適的 Web 服務,那種體驗感或許是非常平淡的。但 Node。js 出現後,一切改變了。

在 2013 年的 MEAN stack IOT 專案中,他的任務是在 Node。js 中開發 REST/Websocket API 的伺服器,並在前端使用 Angular。js 開發 SPA。那是他第一次不得不使用 Javascript 來開發所有東西。當時,也幾乎沒有開發者會想到使用一種玩具指令碼 JavaScript 語言來開發伺服器。

雖然那時 Node。js 剛剛起步,但能在 Express。js 中用幾行程式碼建立一個 hello world REST API,而無需安裝任何 Tomcat / glassfish 伺服器。有了 Socket。IO (一個基於 Node。js 的實時應用程式框架),他第一次用最少的程式碼建立了 WebSocket 伺服器,並瞭解其工作流程。

這些讓他重新對後端軟體開發產生興趣,也看到了許多過去從未見過的東西。與他一起工作的開發人員在幾周內就開始使用 Node。js。在 2013 年的短短几周內,可以開發出新的 REST/WebSocket API 與會話處理程式、中介軟體、處理 REDIS、MongoDB、在 AWS 上部署的人。建立 REST/WebSocket 伺服器不再是一種專屬開發者的技能,幾乎所有熟悉 JavaScript 的人都能夠學習和建立 API 並開始為後端程式碼做出貢獻。對開發者來說,開發伺服器逐漸成為一件易事。

如今,這位作者使用 Node。js 快 9 年了,仍然非常喜歡它,尤其喜歡使用 Typescript。Node。js 在將 ECMAScript 塑造為 IMO 語言上產生了巨大的影響。隨著 ECMAScript 6。0 的釋出,以及其他的現代工具,例如 Tslint、Eslint、SSR、Monorepos (NX turborepo),Typescript 開始受到關注,ECMAScript 也得到了升級。ES 2022 帶來了語言規範中的所有新的和現代的特性,解決了相當多的語言陷缺。

總的來說,這位作者認為 Node。js 在創造和簡化伺服器開發方面,產生了巨大的影響力。

未來,Node。js 的發展也勢不可擋嗎

如今,Node。js 讓更多編寫 JavaScript 的前端開發者無需學習不同的語言,就可以編寫除客戶端程式碼之外的伺服器端程式碼。因此,網際網路上許多開發者對 Node。js 持支援態度:

“後端開發的民主化是 Node。js 已經實現的最大成就之一”;

“未來十年左右也屬於 Node。js ”;

“JavaScript 是唯一可以開發前端,後端,移動應用程式和桌面應用程式時期的語言”;

“Node。js 的輕量級特性使它具備優勢”

但是,也有許多開發者產生了不同看法:

“Node。js 在可擴充套件性方面(特別是在多執行緒方面)無法跟上”;

“JavaScript 可能永遠不會在大型企業專案的後端程式碼庫中被大量使用。按照它的發展速度,事情將發生太大變化”;

“Node。js 在 CUP 繫結操作中是不可擴充套件的”;

“JavaScript 沒有發明非同步/等待,也沒有讓它成為主流”。

無論是過去還是未來,伺服器的開發技術都與開發者的工作息息相關。你曾經接觸過 Node。js 嗎?是否覺得它是不可替代的呢?

參考連結:

https://old。reddit。com/r/node/comments/xik2b3/is_nodejs_the_most_influential_server_tech_of/

http://nodejs。cn/learn

頂部