首页 > 自考资讯 > 自考知识

node-js,node.js还火吗

头条共创 2024-06-27

Deno 1.0 发布几天后,围绕Node.js 的讨论也随之升温。在社交媒体和技术论坛上,许多开发人员正在讨论Node.js 的命运。有些人甚至认为Node.js 已经接近终结,至少迟早如此。我不是预言家,但我会在这篇文章中分享一些想法。本文主要试图回答“Node.js 会完整吗?”这个问题。我将解释为什么此时您不应该关注对Node.js 命运的悲观预测,即使它们是没有根据的。

本文最初发表于Geeky Hakcer 博客,经原作者许可,由InfoQ 中文翻译并分享。

引言

新语言或技术一诞生,很多人就谈论它的消亡。不相信我?只需打开Google 并输入:

(选择随机语言或技术)你快完成了吗?

输入任何技术,你都会发现大量文章,其中许多肯定是垃圾。即使像Kubernetes 这样的新技术也不能幸免,Node.js 也不例外。然而,正是Deno 1.0 的发布最近引发了“Node.js 已死”的讨论。

如果您还不知道Deno 是什么,请继续阅读下一节。然后你就可以看到当前的恐慌来自哪里。

什么是 Deno?

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

该项目是Dahl 在2018 年演讲“关于Node.js 我后悔的10 件事”中宣布的。与用C/C++ 编写的Node.js 相比,Deno 是用Rust 编写的。

截至撰写本文时,Deno 只有一个压缩的可执行文件,大约15MB。

de4b1a6dbbb9447abb8623f3f490b870~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720092793&x-signature=KZUCpmASqVK9PRoWXLNR53%2BKcag%3D美丽德诺

此外,没有像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 还创建了Git,但没有参与其维护。他接管了Git 的全部,但是Git 死了吗?

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

Node.js 社区是一个无人维护的库的墓地,这已不是什么秘密。可以毫不夸张地说,一个群落内每天诞生和死亡的细胞数量超过了单个人类的细胞数量。

每隔3-2 天,开源社区就会出现一个新框架,这个新框架可能会流行一段时间,但突然就没有人维护它了。随意搜索一下,就会发现GitHub 上有数十个项目,这些项目有很多star,但没有人维护它们。

有人可能会问,如果社区正在发生这种情况,我们如何确定Node.js 不会遭受同样的命运?

答案很困难。 Node.js 的命运取决于社区和企业的支持。重要的不是项目筹集了多少钱,而是能否获得更多的捐赠和支持。如果大量使用Node.js 的公司能够雇佣积极为该项目做出贡献的人员,那么Node.js 的终结几乎是不可能的。例如,Java 已经存在了25 年。除了Java 在几乎所有设备上广泛使用之外,Java 长寿的另一个原因是它得到了如此多的公司的支持。它不仅得到Oracle 的支持,还得到Amazon、IBM 和许多其他公司的支持。

然而,请记住,许多使用Node.js 的公司都是短命的初创公司,预算有限。我们预计这些公司不会做出太多贡献。 Node.js 需要的是Facebook 和Google 等钱包巨头的支持。

如果社区变得支离破碎或者大公司停止支持Node,你应该担心Node 正处于衰落的边缘。

Deno 比 Node.js 更好

这当然没有什么问题。人们在构建Node.js 的过程中获得了大量的经验和知识,所以难怪Deno 能做得更好。然而,一项技术的未来潜力不能仅以其能力来评估。这只是因素之一。采用和支持的程度是更重要的因素。而且由于德诺还年轻,所以在这些方面他并不具备优势。所以Node.js 不会很快消失。

但我们也可以想象最坏的情况。如果发生这种情况怎么办?

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

当我调查时,我发现有些人正在讨论Node.js 的终止,就好像它已经死了一样。问题在于,编程语言和技术的死亡并不像人类的死亡。这个结局不会在一夜之间发生。

技术升级通常需要数年时间,因为公司无法在一夜之间或一个月内更换现有产品并转向新产品。节点也不例外。 Node.js 库不适用于Deno,并且为Deno 开发新库需要时间。另外,不要忘记专业知识的可用性。如今很少有人熟悉如何使用Deno 构建生产规模的产品。所有这一切至少需要几年时间。

2c0f5879be46486fa56bfba65d3180f3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720092793&x-signature=IpKic%2BRMjTAfWNYIEHVKQ9ig4Ow%3D 节点不行!

即使Node比预期更快消失,市场在很长一段时间内仍然需要相关工作。当然,它不像COBOL。但至少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。电子邮件:kasra@madadipouya.com

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢