在过去的几年里,关于 Deno 的讨论数量令人难以置信,Deno 是 Ryan Dahl 的 NodeJS 运行时的继任者,旨在解决他最初创造的所有问题。

实际上,尽管 Deno 在很大程度上稳定并解决了 Node 的许多问题,但它并没有得到广泛采用,因为它与现有的节点模块不兼容。

大约一周前,当新的 Javascript 运行时Bun推出其公开测试版时,开发界感到惊讶。

Bun 的主张是,它正在解决 Deno 所做的问题,并且与现有的 Node 生态空间兼容,同时比 Deno 和 Node 都快得多。

让我们潜入


节点问题

尽管 NodeJS 在过去十年中被广泛使用,但它也存在相当多的问题。

Node 最令人震惊的问题是 NPM 和整个模块系统令人难以置信的复杂性。它不仅速度慢且不安全,而且系统的设计与典型的 Web 技术截然不同。

此外,Node 几乎可以完全访问系统,这是一个主要的安全漏洞。

最重要的是,开发人员需要的一些标准功能,如环境变量、https 或 Typescript,并没有包含在开箱即用的 Node 中。

大多数这些问题似乎都可以通过 Deno 解决,但代价是整个 Node 生态系统。对于绝大多数开发人员来说,解决这些问题根本不值得跳入一个全新的生态系统,因此我们还没有看到 Deno 被采用。


Bun 如何解决它们

现在,虽然 Bun 还处于起步阶段,但它似乎在很大程度上解决了 Node.js 缺乏内置支持和不幸的速度问题。

Bun 声称在许多关键任务上的效率是 Node 和 Deno 的两倍以上

[图像描述](https://res.cloudinary.com/practicaldev/image/fetch/s--HAhtlbw8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/oi6yfxenbfcuhlrkl6j7.png)

[图像描述](https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png)

[图像描述](https://res.cloudinary.com/practicaldev/image/fetch/s--koQcHlsf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/lwyq1pf6gv4c9bb992fa.png)

Bun 通过不在 Deno 和 Node 使用的 V8 引擎上运行,而是选择了令人难以置信的低级语言Zig来实现这一点。

此外,Bun 是 Node 的嵌入式解决方案,因此它已经与现有的整个 Node 生态系统兼容。


试吃包子

您可以使用以下命令在 Mac 和 Linux 上安装 Bun:

curl https://bun.sh/install | bash

然后你可以运行一个js文件:

bun run index.js

你可以安装你的 NPM 包:

bun install package-name

如您所见,CLI 实际上与 Node 相同,这意味着没有学习曲线。


要记住什么

请记住,Bun 是在一周前推出的。它仍然充满了错误。如果您尝试使用它,您可能会遇到一些问题。

此外,这意味着我们还没有看到这个项目的结果。它真的会解决 Node 的所有问题并最终取代它吗?也许。但也有可能是 Bun 根本无法达到 Node 的稳定性。

我们很可能会在明年发现 BunJS 的命运......


在Codesphere,我们还致力于使 Web 开发更快、更顺畅、压力更小。我们正在构建一个一体化的 Web IDE、DevOps 工具和云提供商。

快乐编码!

Logo

React社区为您提供最前沿的新闻资讯和知识内容

更多推荐