17611538698
webmaster@21cto.com

Deno 承诺 npm 兼容性和“有史以来最快的 JavaScript 运行时与 Web 服务器”

资讯 0 1384 2022-08-19 02:55:02

8月17日,Deno.js 作者与Node.js 的原作者Ryan Dahl 与Deno.js 战略和运营主管 Alon Bonder 合作发表了一篇官方博文。


我们将此内容截图如下:


图片

图源:https://deno.com/blog/changes


文章大意是,由 Dahl 创建的 Deno.js 现在可以轻松导入Node.js 的 npm包,除此之外 Deno 还带了个新的 HTTP Web服务器,它还声称这是“有史以来构建的最快JavaScript 运行时”。(注:Runtime 译作运行时,也有译为运行环境,而前者有动态概念)


图片


Deno.js 近来保持了一些强劲的发展势头。它在 GitHub 上已经有 410 万次下载,每月有 25 万活跃用户,但它最大的采用障碍是 Node.js 和 npm 生态系统的主导地位,后者发展多年,已经嵌入到许多开发人员的产品/项目过程中。


Dahl 和 Bonder 在文中宣布说:


“我们一直在努力进行一些更新,这些更新将允许 Deno 轻松导入 npm 包,并使 80-90% 的 npm 包在接下来的三个月内在 Deno 中运行。”


而事实上,JS运行时运行速度的竞争是最近新出现的 bun 所引起的: 


bun 是 Node.js 和Deno 的新竞争对手。


图片


这款命名为 Bun 的新 JavaScript/TypeScript 运行时承诺了更卓越的性能:


图片


Bun 自己的基准测试显示每秒 HTTP 请求数是 Node.js 的3倍,是 Deno 可以提供的4倍。而Bun 此时还处于预览版状态,它的 JavaScript 引擎和 http 服务器都体现了出色的性能数据。Bun 也已经与 npm 兼容,支持 90% 的 Node API 函数,它的创建者强调不使用 Node 和 Deno 都用的 V8 运行时,称“JavaScriptCore 引擎往往启动和执行速度要更快一些。”


在此时,Dahl 和 Bonder 承诺 Deno 是最快的 JavaScript Web 服务器,他们这样描述:“我们 100% 相信基于 Deno 的技术堆栈、V8 和 Rust 来实现这一点。” 。


Deno 1.0 于 2020 年发布,作者 Dahl 表示这是为了通过新的更好的JavaScript 运行时来修复“Node 中的设计错误”。其功能包括原生 TypeScript 和 WebAssembly 支持,以及包括使用 ES (EcmaScript) 模块的 Web 平台标准,而 Node.js 还有 CommonJS 模块的额外遗产。


Deno 目前不再使用 npm 包管理器或任何包管理器。“在 Deno 中,没有包管理器的概念,因为外部模块直接导入到本地模块中,” Deno文档中这样解释道。


Deno 开发者社区也对这些公告做出了积极反应,npm 兼容性无疑是吸引人们最大的。当然 Deno 的 Discord 论坛上的开发者也质询“在 deno 中支持 80-90% 的 npm pkg 很棒,但是我们怎么知道 pkg x 是否会支持或不支持?(兼容)”


在 Hacker News 网站上的一位开发人员表示,  “npm 兼容性对 Deno 来说意义重大。这是 Deno 原来的一个主要缺点。”

意思就是说,巩固 npm 为主导地位对某些人来说是一个潜在的不利因素。“Npm 是我不喜欢 Node 的主要方面……我希望兼容性是一个旨在简化转换的功能,而不是一般用户群应该接受的东西,”另一位开发人员这样认为。


Deno 团队已经在计划更好的 Node 和 npm 兼容性技术,但 Bun 的出现(虽然它尚处于开发的早期阶段)也为三者的竞争注入了一些新活力。


这些对于 JavaScript 和 TypeScript 开发人员来说是个好消息!

评论