Node.js快要死了吗?

2020-05-20 03:34:48

在过去的几天里,在第一个Deno版本之后,出现了一场关于Node.js的新讨论。在社交媒体和技术论坛上,许多开发者现在都在谈论Node.js的命运。甚至有人猜测Node.js很快就会消亡。或者最终会的。虽然我不是预言家,但我有一些见解要与大家分享。我特别想回答“Node.js会死吗”这个问题。我介绍了目前对Node.js死亡的恐慌是如何无关紧要的,尽管有支持它的证据。

每当一种语言或技术诞生时,许多人立即开始谈论它的消亡。你不相信我吗?只需打开Google并键入。

从字面上讲,对于任何技术,你都可以找到一堆文章,其中许多毫无疑问都是垃圾。即使是库伯内斯这样的新技术也是如此。js也不例外。但引发“Node.js死亡”话题的是Deno的首次发布。

如果您不知道Deno是什么,只需阅读下一节即可对其有所了解。这有助于你理解当前恐慌的气氛。

Deno是由Node.js创建者Ryan Dahl编写的Javascript运行时。这个名字是单词“Node”🙂的自然类型。

该项目由Dahl于2018年在他的演讲“我对Node.js的十件遗憾”中宣布。Deno是用Rust编写的,与用C/C++编写的Node.js形成对比。

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

此外,它没有像NPM一样的或单独的外部包管理器。它是内置的。

Deno以沙盒模式运行(表示不能直接访问文件、网络和其他IO),因此应该显式授予任何权限。

突然开始认为Node.js正在消亡的主要原因是因为Deno的1.0版本于2020年5月13日发布。尽管这个项目已经有两年多的历史了,但是这个版本还是在社交媒体上引起了Node开发者的恐慌。

不用说,Deno和Node.js之间有很多不同之处。而且Deno不一定是Node.js的替代品(到目前为止),但许多人无论如何都惊慌失措。我对恐惧的原因进行了分类,并分别对每种原因进行了分析。

造成这种情况的一个主要原因是因为这两款产品的创作者都是一样的。很多人认为瑞安·达尔不会花时间在诺德身上。因此,Node.js正在消亡。

虽然这是一个合理的假设,但它从根本上说是错误的。js有一个巨大的社区,这个社区比许多其他社区要大得多。因此,它不是一个人的项目。

在相反的论点上,一些人将Dahl的存在比作Node.js,将Linus Torvalds的存在比作Linux。我告诉你,这根本不是一个正确的比较。

首先,Dahl自2012年以来就没有参与过Node.js。但在过去的30年里,托瓦尔兹一直在以这样或那样的形式致力于Linux的研究。

其次,不能保证即使Torvalds离开内核社区,Linux也会消亡。此外,不要将2018年9月Linux社区的混乱与托瓦尔兹事件相提并论。2018年的混乱是一个黑暗而可怕的事件,其中一部分是关于托瓦尔兹的言论。

最后,托瓦尔兹也创建了Git,但没有对其进行维护。他刚刚完全交出了。吉特死了吗?

js社区被誉为无人维护的库的坟墓。无意冒犯,每天诞生或死亡的图书馆数量超过了任何人的细胞数量。

每隔一天就会创建一个新的框架,它有时会成为社区的事实,然后突然之间,它就不需要维护了。通过快速搜索,你可以在GitHub中找到几十个没有人维护的星星。

有人可能会说,如果这是社区的现状,是什么让我们认为同样的事情不会发生在Node.js身上呢?

答案是这要视情况而定。这取决于社区和企业的支持。不一定要通过货币资助,但更多的贡献和支持是明智的。如果广泛使用Node.js的公司雇佣一些人积极为项目做出贡献,那么Node.js的死亡几乎是不可能的。让我给你举个例子。爪哇已经存在了25年了。除了在几乎所有设备上大量使用之外,Java长寿的原因之一是企业的支持。不仅甲骨文公司支持,亚马逊、IBM和许多其他公司也支持。

但我们不要忘记,许多使用Node.js的公司大多是生命周期短、预算紧张的初创公司。我们不能说明那些公司的贡献。它需要一家像Facebook或谷歌这样的大而富有的公司。

如果社区分道扬镳和/或大公司不支持Node,这是一个合理的担忧,可能会使Node走下坡路。

当然了。那是真的。通过构建Node.js获得了丰富的经验和知识。所以如果德诺更好也就不足为奇了。但是,一项技术不仅仅是根据它的能力来评估的。这只是其中一个因素。使用和支持是更重要的角色。而德诺并不完全在那里,因为它还很年轻。所以node.js不会立即死亡。

但我们还是做最坏的打算吧。然后会发生什么呢?阅读该😀的下一节。

在我的研究中,我发现有些人讨论Node.js的死亡就像一个人刚刚去世一样。嗯,一种语言或技术的消亡并不等同于一个过关的人。这不是一天之内发生的。

技术的改变通常需要数年时间,因为公司不可能在一夜之间或一个月内更换他们的产品,然后再切换到新的产品。节点在这里也不例外。js库不能与Deno一起工作,构建它需要时间。此外,不要忘记专业知识的可用性。目前,没有多少人熟悉德诺来打造生产规模的产品。所有这一切至少需要几年时间。

即使Node比预期更早死亡,它也会有就业市场。当然不同于COBOL。但至少在接下来的5年里,它会有工作机会。这应该会为节点开发人员提供足够的缓冲区来进行切换。另外,因为Deno和Node都与JS世界相关,所以从一个切换到另一个不会很乏味。

Node.js至少在未来五年内不会消亡,目前社交媒体上关于其消亡的争论是毫无意义的。虽然有一些关于其衰落的猜测,但到目前为止还没有一个是确定的。即使假设对Node.js不利,而对Deno有利,公司仍然需要时间切换到新技术,并且需要构建库。如果你很担心甚至好奇,我强烈建议你开始玩弄迪诺。

最后,我想澄清一下,我对德诺没有意见。这是一个很有前途的好项目。我写这篇文章的目的不是贬低Node.js开发人员的压力,而是减轻他们的压力。