Node.js 要完了吗?

Node.js 要完了吗?这个项目是 Dahl 在 2018 年的演讲 我对 Node js 感到遗憾的十件事 中宣布的 对 Deno 感兴趣的话 可以看一看作者最新的教学资料 如何使用 Deno 和 Oak 构建 REST API

欢迎大家来到IT世界,在知识的湖畔探索吧!

Deno 1.0 发布之后的这些天,关于 Node.js 的讨论也甚嚣尘上。在社交媒体和技术论坛中,许多开发人员都在谈论 Node.js 的命运走向。甚至有人断言 Node.js 即将迎来终结,至少这一天迟早会到来。我并不是什么先知,但在本文中我会与大家分享一些看法。本文主要尝试回答“Node.js 是否要完”这个问题。我会向大家解释,为什么现在我们不必在意那些对 Node.js 命运的悲观预测,即便这种预测并非空穴来风。

本文最初发布于 Geeky Hakcer 博客,经原作者授权由 InfoQ 中文站翻译并分享。

引言

每当一种新的语言或技术诞生时,马上就会有很多人谈论它的终结。不信?只需打开谷歌并输入:

(随便选一种语言或技术)快要完蛋了吗?

不管你输入的是哪种技术都可以搜出来一大堆文章来,其中很多无疑写的就是垃圾。就算是 Kubernetes 之类的新技术也不能幸免,Node.js 自然也不例外。但最近炒热“Node.js 要完”这个话题的是 Deno 1.0 版本的发布。

如果你还不知道什么是 Deno,请继续阅读下一节内容。这样你就会知道现在弥漫的恐慌情绪是从何而来的了。

什么是 Deno?

Deno 是由 Node.js 创建者 Ryan Dahl 编写的 Javascript 运行时。它的名字是“Node”一词的变体

这个项目是 Dahl 在 2018 年的演讲“我对 Node.js 感到遗憾的十件事”中宣布的。相比以 C/C++ 编写的 Node.js 而言,Deno 是用 Rust 编写的。

在撰写本文时,Deno 只有一个执行文件,压缩后的大小约为 15MB。

Node.js 要完了吗?



欢迎大家来到IT世界,在知识的湖畔探索吧!

漂亮的 Deno

此外,它没有类似 NPM 的或独立的外部包管理器。它的包管理是内置的。

Deno 运行在沙盒模式下(意味着无法直接访问文件、网络和其他 IO),因此任何权限都需要显式授予才行。

对于 TypeScript 爱好者的一个好消息是,Deno 默认支持 TS。

为什么要讨论 Node.js 的消亡?

之所以社区突然开始认定 Node.js 要完,主要是因为 Deno 的 1.0 版已于 2020 年 5 月 13 日正式发布。虽然这个项目已经开发了两年多时间,但这个正式版本在社交媒体中引发了 Node 开发人员的恐慌。

不用说,Deno 和 Node.js 之间有很多区别。而且 Deno 不一定是 Node.js 的替代品(目前为止是这样),但不管怎样许多人都感到惊慌失措。我对他们恐惧的原因归了一下类,并分别做了探讨。

相同的创造者

造成现在这种局面的一大因素是两种产品有着相同的创造者。而且许多人认为 Ryan Dahl 不会再在 Node 上浪费时间了。于是乎,Node.js 要完。

这个假设看似有理,其实大错特错。Node.js 拥有一个庞大的社区,比其他许多社区都大得多。所以这并不是什么个人项目。

有人在反驳时将 Dahl 对 Node.js 的意义和 Linus Torvalds 对 Linux 的意义做了类比。我要说的是,这根本不是正确的对比。

首先,Dahl 自 2012 年以来就没再参与 Node.js 的开发了。但在过去的 30 年来,Torvalds 一直在以某种形式参与 Linux 的相关工作。

其次,就算是 Torvalds 离开了 Linux 的内核社区,也不能说 Linux 就会完蛋。而且也不要把 Torvalds 的退出与 Linux 社区在 2018 年 9 月的混乱局面划等号。2018 年的那次混乱是一桩原因复杂的黑暗事件,其中只有一部分和 Torvalds 的退出有关系。

最后,Torvalds 还创建了 Git,但并未参与其维护工作。他把 Git 全盘交了出去,可是 Git 完蛋了吗?

Node.js 社区是一片墓地,遍布着没人维护的库

众所周知,Node.js 社区是无人维护的库的墓地。不夸张地说,社区中每天诞生或死亡的库的数量超过了每个人的细胞数量。

开源社区每隔三两天就会诞生一个新的框架,新框架或许会风骚一时,然后突然就没人维护了。随便搜一下,你就能在 GitHub 中找到几十个 Star 数众多但没人维护的项目。

可能有人会说,如果这就是社区中的日常,那么我们如何断定 Node.js 就不会遭遇同样的命运呢?

答案是不好说。Node.js 的命运取决于社区和企业的支持。重点不在于项目筹集了多少资金,而在于它是否能得到更多的贡献和支持。如果大量使用 Node.js 的那些公司能雇用一些人为这个项目做出积极贡献,那么 Node.js 几乎不可能迎来末日。举个例子,Java 已经存在 25 年了。Java 之所以如此长寿,除了它可以在几乎所有设备上广泛使用的优势之外,另一个原因就是众多公司的支持。它得到的支持不仅来自于 Oracle,而且还有 Amazon、IBM 和其他许多公司。

但请不要忘记,许多使用 Node.js 的公司都是寿命短、预算紧的初创公司。我们不能指望这些公司做出多大贡献。Node.js 需要的是像 Facebook 或谷歌这样钱包鼓鼓的巨头的支持。

如果社区走向分裂,和 / 或大公司不再支持 Node,那么我们就有理由担忧 Node 正走在衰落之路上了。

Deno 比 Node.js 更好

当然,这一点没有疑问。在构建 Node.js 的过程中,人们获得了丰富的经验和知识,所以 Deno 能做得更好也不奇怪。但是,要评估一项技术的前景不能只看它的能力。那只是其中一个因素。普及率和支持水平是更重要的因素。而且 Deno 在这些方面并无优势,因为它还很年轻。因此,Node.js 不会这么快死掉的。

但我们还可以假设最坏的情况,然后会发生什么呢?继续看下一节

如果 Node.js 死掉了会怎样?

我调查时发现,有些人讨论 Node.js 的终结就好像在谈论一个人刚刚死掉一样。问题是,编程语言或技术的消亡过程并不像人类的死亡那样。这种消亡不是一夜之间发生的事情。

技术的更新换代通常需要花费多年时间,因为公司无法在一夜之间或一个月内换掉现有的产品,然后迁移到新产品上。Node 也不例外。Node.js 库不能用在 Deno 中,为 Deno 开发新库是需要花时间的。另外,不要忘记专业知识的可用性。现在很少有人熟悉如何使用 Deno 来构建生产规模的产品。所有这些至少需要几年的时间。

Node.js 要完了吗?

Node 没机会了!

即便 Node 的消亡时间比预期的要早,市场也会长期需要相关的岗位。当然它不会像 COBOL 那样。但至少在接下来的 5 年中 Node 的开发人员都能找到工作。这应该可以为 Node 开发人员提供足够的缓冲期来转换方向。另外,由于 Deno 和 Node 都是 JS 世界的成员,因此从一个切换到另一个的过程并不会那么烦人。

结论

Node.js 至少在未来五年内不会消亡,而当下在社交媒体中关于它死期的争论毫无意义。尽管有一些关于它走下坡路的判断,但到目前为止我们还没有一个明确的结论。就算我们对 Node.js 假设最坏的情况,而对 Deno 假设最光明的未来,各家公司要切换到新技术上依旧需要很长的时间,而且 Deno 的库生态建立起来也需要时间。如果你忧心忡忡,或者对新技术充满好奇,我强烈建议你尝试一下 Deno。

最后,我想声明一下,我对 Deno 没有偏见。这是一个前景光明的好项目。我写这篇文章的目的不是要讨论 Deno 的未来,而是要减轻 Node.js 开发人员的压力。

作者介绍:

Kasra Madadipouya 是一位软件工程师,对软件架构和设计、简洁代码和机器学习充满热情。他很享受用 Java、Scala、Python 和 JavaScript 编程的乐趣。喜欢博客、写作、机器学习、音乐、步行和天文学。i3WM 粉丝。Linux 和免费开源软件(FOSS)的资深支持者。对 Deno 感兴趣的话,可以看一看作者最新的教学资料:如何使用 Deno 和 Oak 构建 REST API 。邮箱:

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/96366.html

(0)
上一篇 3小时前
下一篇 2小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信