也许是因为受到来自近日火灾的「Bun」的压力,Deno 非官方在 8 月 15 日正式发布了一则名叫《Deno 将要出现关键性变动》的昌明。
Deno 的恐惧
2018 年,Node.js 的创办人 Ryan Dahl 在 JSConf EU 上做了主轴为 “10 Things I Regret About Node.js” 的撷取,Ryan 简述了在他直言原本合作开发 Node.js 时留下的五大惋惜。由于 Node.js 现在早已广泛应用于各个方面,为了保证相容性,对 Node.js 下层进行小规模改建早已不现实生活。于是 Ryan 正式宣布他下定决心合作开发一个崭新的 JavaScript 运转时以化解原本的诸多瑕疵,这即是 Deno 的来历。
Deno 由以下技术构筑:
Rust(Deno 的核心是用 Rust 撰写的,Node 用 C ++撰写)Tokio(用 Rust 撰写的事件循环式)TypeScript(Deno 全力支持 JavaScript 和照相狸尾豆的 TypeScript)V8(google 在 Chrome 和 Node 等中使用的 JavaScript 运转时)不过,尽管 Deno 声称化解了许多长期所苦合作开发人员的亟待解决难题(把 es-modules 预设成缺省,导入了第一方 TypeScript 全力支持(无须在正式发布前转录 npm 组件等等),但在许多使用者直言,Deno 在化解老难题的同时,也导入了许多新难题。
其中,自然生态是 Deno 主要被非议的难题。首先,Deno 对包导出和句法做的更改过分痛定思痛,导致根本无法跟旧有 npm 自然生态系相容。换句话说,Deno 需要培育起他们的崭新库自然生态。虽然 Deno 渐渐开始全力支持许多早期库,但一个项目的声望会直接下定决心它的发展下限。当然也有许多大别列兹尼区,比如说把 npm 包转化成 Deno 包的 CDN,但也有人觉得这不是什么好招。
此外,Deno 还有着许多曝露其成品身分的难题,比如说缺乏 package.json。不论是从组件导出的视角来看,还是从缺乏 manifest 文档起程,Deno 都不容许合作开发人员为他们的包撰写可扩充元数据。GoLang 甚至专门有鉴于此导入了 go.mod。
将要有关键性革新
8 月 15 日,Deno 非官方正式发布了一则名叫《Deno 将要出现关键性变动》的昌明。这个最佳时机点不免让人将其与前阵子火灾的「Bun」联想起来。
Bun 是今年才发布的前端工具链项目,作者是前 Stripe 合作开发人员 Jared Sumner 。不同于 Node.js 和 Deno 使用的 V8 引擎,Bun 使用 JavaScriptCore 引擎,并用 Zig 编程语言撰写。
据悉,Bun 最初只是一种 JavaScript webserver,但在后续发展中逐渐酝酿出了全面颠覆 JS 自然生态系的野心,它的性能表现优异,其 React 的服务器端渲染速度据称是 Node 或 Deno 的三倍以上。
面对这样的强劲新对手,Deno 也迫不及待要预告他们的新动态和进展。
根据非官方昌明,Deno 这次想要对外强调的进展包括:
团队一直在通过更新降低 Deno 对 npm 包的导入门槛,预计未来三个月内,绝大多数 npm 包都能在 Deno 中顺畅运转。Deno 目标是成为最快的 JavaScript 运转时。这里向新使用者稍做解释,Deno 的下个版本将包含新的 HTTP 服务器,这也是有史以来速度最快的 JavaScript Web 服务器。考虑到许多大型企业和公司初创团队都在使用 Deno,其将面向这些商业使用者提供办公时段专用套餐。下面我们一同看看 Deno 具体的变动是什么样的:
Node 与 npm 相容性
在未来三个月内,有 80%到 90%的 npm 包都能够顺畅运转在 Deno 当中。具体实现方式是使用特殊的 npm URL,具体示例:
import express from “npm:express@5”;复制代码
未来三个月内,大多数 npm 组件都能通过上述方式作为依赖项导入。使用者将告别 node_modules 文档夹、告别 npm install;这些包将被自动下载至 Deno 缓存内。从类型检查到 LSP、再到 deno vendor,所有 Deno 工具都可以使用这些 npm 包。
最快的 JavaScript 运转时
非官方称 Deno 将成为速度最快的 JavaScript 运转时,没有之一。他们 100%相信,Deno 自身的技术堆栈、V8 再加上 Rust 完全可以把这个目标变成现实生活。
Deno 的 HTTP 服务器也在经历大改,“现在我们向大家正式正式宣布,它就是有史以来速度最快的 JavaScript Web 服务器。我们整个运营系统的优化度越来越高,能够直连 V8 Fast API 以通过 JS 快速调用本机代码。同样地,我们的外部函数接口(FFI)也迎了振奋人心的更新。请注意,我们可不是在针对少数极端情况进行优化,而是真正实现了整体实践层面的性能提升。”
Deno 表示,预计在今年夏天结束之前,相关成果就将正式正式发布、供大家上手体验。
全力支持企业使用者
Deno 指出,在最近进行的调查中,发现近半数 Deno 活跃使用者会在工作当中使用 Deno,其中包括许多大企业的合作开发人员和初创公司创办人。未来,团队希望将为在商业环境中使用 Deno 的朋友们提供免费办公时段套餐。
因为 Deno 团队的规模还相当有限,所以呼吁相关使用者先填写表单,需求将根据大家的项目规模和紧迫性进行优先级排序。表格填写地址:
https://docs.google.com/forms/d/e/1FAIpQLSewMCz1wB8SMZI8n7xUVeH00tBo5xLBGmj26-QVjjhQ4FfZlQ/viewform流畅的合作开发人员体验
在接下来几个月中,Deno 将陆续正式发布后续更新,包括全部第三方 Deno 代码实现全文符号搜索,以及自动为 JavaScript 和 TypeScript 项目生成文档等。下图为功能预览界面:
最后,Ryan Dahl 表示对 Deno 过去几年中建立的庞大自然生态系和良好的全力支持成效感到自豪。目前,Deno 在 GitHub 上的下载量已突破 410 万次,月活跃使用者高达 25 万,项目采用率还在持续提升。
“哇,对兼容 npm 的 Deno 非常感兴趣!我认为这将消除进入 Deno 的巨大障碍。”
“一旦 Deno 正式发布了这些功能,我将再次尝试 Deno。”
从网友的反应来看,Deno 的这番“紧急预告”早已开始产生效果。不过,使用者也许还得等两三个月才能用上改进后的新版 Deno。
参考链接:
https://deno.com/blog/changes
https://www.infoq.cn/article/3ZyWlLFvesQtS8acV7UU