摘要:众所周知,Node.js 具有独特的优势,可以让许多为浏览器编写 JavaScript 的前端开发者,无需学习不同的语言,即可编写除客户端代码之外的服务器端代码。在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,还可以通过运行带有标志的 Node.js 来启用特定的实验性功能。本文根据一位开发者在《Is Node.js THE most influential server tech of last decade?》,总结过去 Node.js 产生的影响力。
整理 | 朱珂欣
出品 | CSDN
在 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
- END -