遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

2022-11-24 0 774

【CSDN 萨德基】截止目前,Node.js 仍然是采用最广为的 JavaScript 运转时自然环境,但是反之亦然出自于 Node.js 先驱 Ryan Dahl 之手的 Deno 却更为安全可靠。但是日前,一款集构筑、转录、倚赖管理工作于华服的高效能 JavaScript 运转时 Bun 陨落,在 Server、Sqlite、ffi 等各方面都超过了 Node 和 Deno,或许是碍于阻力下,Deno 于日前正式宣布迎关键性体制改革。

再次整理 | 苏宓

公司出品 | CSDN(ID:CSDNnews)

对于采用 JavaScript 的合作开发人员来说,总之对 Node.js 并不孤单。如前所述 JavaScript 的 Node.js 网络平台是由美国著名应用软件技师 Ryan Dahl 于 2009 年面世,其起初是作为 Apache HTTP Server for Linux 和 MacOS 的极具扩展性的代替品而合作开发。时至今日,Node.js 已被很多人用于生产自然环境。

但是,在 2018 年,Ryan Dahl 刊登了一次以「我为 Node.js 深感懊悔的Gesse」的主轴撷取,他表示在结构设计 Node.js 时犯一些包括安全性、package.json、node_modules 等系列产品的轻微错误,并说这些 Bug 问题轻微且不容正视,于是并用了一年的时间进行了再次合作开发,并在 2020 年 5 月正式面世了如前所述 V8 发动机和 Rust Smalltalk建立的 JavaScript、TypeScript 继续执行自然环境——Deno。

不过被突显众望的 Deno 词汇,历经了 2 年的产业发展,虽然在可靠性等层次更胜 Node.js 一筹,但其发展或许没有达到预期。而就在日前,这款集构筑、转录、倚赖管理工作于华服的高效能 JavaScript 运转时 Bun (https://bun.sh/)陨落,甚至在其官方网站上,该项目组撷取四种技术在 Server、Sqlite、ffi 三个各方面的操控性对照,结果表明,才华横溢的 Bun 远超 node、deno,这不由得让“后辈们”深感了非常大阻力。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!
遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!
遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

不知是耐人寻味还是为了应对这种“即时”局面,8 月 15 日,Ryan Dahl 在官方网站上发布了一篇《Big Changes Ahead for Deno》的声明,其中撷取了未来几个月将对 Deno 的一些关键性变革,包括使 Deno 能够轻松导入 npm 包,也旨在让 Deno 成为最快的 JavaScript 运转时、提升合作开发人员的体验等。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

变革一:与 Node、npm 的兼容性

正如上文所述,Deno 作为后来者,是为了弥补 Node.js 的一些缺陷而合作开发的,但是当前两者在兼容性上也存在一定的问题。Ryan 直言,“有很多人已经指出,摆脱 Node 的所有痛苦是多么令人振奋——从过时的和非标准的 API 到奇怪的模块加载启发式方法。我们也明白这些问题,这些都是我们项目组当初建立 Deno 的一些主要原因。”

当前,该项目组希望能够用一种更简单的方式来与为 Node.js 编写的、以 npm 包形式发布的 JavaScript 进行互操作,于是,其立下了一些 flag,包括使 Deno 能够轻松导入 npm 包,并在未来三个月内使 80-90% 的 npm 包在 Deno 中工作。

这将通过特殊的 npm URLs 来实现,示例如下:

import express from “npm:express@5”;

在未来三个月内,大多数 npm 模块都可以像这样作为一个倚赖关系被引入。不会有 node_modules 文件夹,也不会有 npm install,应用软件包会自动下载到 Deno 缓存中。所有的 Deno 工具都可以采用,从类型检查,到 LSP,再到 deno vendor。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

变革二:成为最快的 JavaScript 运转时

一直以来,Deno 项目组甚至开发者圈中有很多关于运转时速度的争议,其认为竞争对生态系统是有好处的。在未来,该项目组的目标是使 Deno 成为最快的 JavaScript 运转时。

同时,Ryan 表示,“我们对 Deno 建立在 V8 和 Rust 之上的技术栈有 100% 的信心,可以实现这个目标。”

当前,Deno 的 HTTP 服务器正在进行“大修”,而它将会是有史以来最快的 JavaScript Web 服务器。Ryan 称,他们的 ops system 也变得越来越好,可以直接与 V8 Fast API 对接,以便快速地从 JS 调用到本地代码。除此之外,Deno 外部函数接口(FFI)也得到了更新。

这一次,Deno 以成为最快的 JavaScript 运转时为目标,并非是针对少数极端情况进行优化,而是针对整个生产自然环境的操控性进行优化。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

变革三:支持企业用户

根据官方调查显示,近一半的 Deno 活跃用户表示他们采用 Deno 进行工作,包括大公司的合作开发人员和创业公司的创始人等。

在未来,Deno 合作开发项目组将为在商业自然环境中采用 Deno 的人面世免费的办公时间套餐。但是,由于 Deno 当前仍然是一个相当小的项目组,该团队表示,“大家可以先填写表格:https://docs.Google.com/forms/d/e/1FAIpQLSewMCz1wB8SMZI8n7xUVeH00tBo5xLBGmj26-QVjjhQ4FfZlQ/viewform,然后会根据项目的大小和紧迫性来确定优先次序。”

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

变革四:最顺畅的合作开发人员体验

在调研过程中,不少合作开发人员都提到了 Deno 良好的合作开发体验,包括开箱即用的  TypeScript。此外,Deno 对 Web 标准和 API 的支持,也是合作开发人员采用该技术的主要原因。

未来,为了确保 Deno 继续为每个人提供更好的合作开发人员体验,Deno 项目组称将在接下来的几个月里计划面世一些新的东西,包括所有第三方 Deno 代码实现全文本符号搜索,自动生成 JavaScript 和 TypeScript 项目的文档。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!
遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

写在最后

四种技术中,据《2022 Developer Survey》报告,Node.js 是专业合作开发人员和学习编码的人最常用的 Web 技术。

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

根据 Deno 官方数据显示,其在 GitHub 上的下载量超过了 410 万,月活跃用户达到 25 万,采用率持续上升。

针对目前处于测试版本的 Bun,旨在与 Node.js 和 Deno 竞争,它在速度层面几乎是 Node、Deno 的三倍。

整体来说,从技术层次来看,当前的 Deno 或许处于一个中间且有些尴尬的位置。

后面有如前所述 WebKit 的 JavaScriptCore 框架建立的 Bun 在速度上极具优势一些,且它具有用于组合多个 JavaScript 代码文件的本机捆绑器、自动继续执行重复性任务的运转程序和转录器等。

前面有成熟的 Node.js “挡路”。其实多年来,Deno 在背后 Node 多年合作开发经验的基础上,并没有“夺走”多数的 Node.js 合作开发人员。虽然 Deno 提高了 Node 的可靠性,即主要是在默认情况下,Deno 不允许程序访问磁盘、网络、子进程和自然环境变量等,但是 Deno 没有颠覆 Node.js 的新功能存在,自然没有激发用户从 Node.js 进行迁移的必要性。

如今 Deno 在去年成立了一家专门的公司,并筹集到了 490 万美元的初始资金用于产业发展 Deno,且当下正式宣布即将向 Node、npm 层次提升兼容性,你认为它能否抵御 Bun 与 Node.js 的竞争?面对百花齐放的 JavaScript 运转时,你会选择哪种呢?欢迎撷取你的看法。

参考资料:

https://deno.com/blog/changes

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务