Deno 2020 回顾:API 稳定、1.0 发布、重构大型基础设施

局长
 局长
发布于 2021年01月19日
收藏 5

Deno 作者 Ryan Dahl 和另一名核心开发者 Bartek Iwańczuk 发表博客回顾了 Deno 的 2020,其中主要的事件包括:API 稳定、对多项大型基础设施进行重构以及发布 1.0 正式版等。

Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是基于 V8 引擎的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成(最初用的是 Golang)。

Deno 从诞生到发布 1.0 正式版刚好经历了两年,下面是对它在 2020 的主要回顾。

支持 V8 调试器

Ryan 表示 Deno 团队花了很大的精力来添加对 V8 调试器的支持,以及实现使用 Chrome Devtools 连接到 Deno 进程的功能。与此同时,CLI 也增加了两个子命令:

  • deno doc
  • deno upgrade

在此期间,构建过程也有了巨大的改进。Ryan 表示,到目前为止,Deno 每次都是从源码构建 V8。V8 是一个非常庞大的项目,Deno 团队能做到将构建时间控制在 30 分钟。

稳定 API

为了给发布 1.0 做准备,Deno 团队对全局的 API 进行了审查,因此出现了许多破坏性变化。出于保守考虑,所有未稳定的 API 都被加上了--unstableflag。同时团队承诺标记了稳定状态的 Deno API 在 2.0 发布前都不会发生破坏性变化。

与此同时,Deno 发布了最后一个 0.x.y 版本。

Deno 1.0 发布

在 Ryan 发表“我为 Node.js 感到后悔的十件事”演讲的两年后,2020年5月13日 Deno 1.0 正式版终于发布了。

Deno 试图提供一个独立的工具来快速编写复杂功能的脚本,它将始终是单个可执行文件。就像 Web 浏览器一样,它知道如何获取外部代码。在 Deno 中,单个文件可以定义任意复杂的行为,而无需任何其它工具。

将内部运行时 (runtime) 代码从 TypeScript 改为使用 JavaScript 重写

在此过程中,Deno 团队决定将内部运行时的编程语言从 TypeScript 转换为JavaScript。Ryan 表示这是一个艰难的决定,但为了优化复杂而又缓慢的构建过程,他最后还是同意了此方案。

WebSocket API、控制台的 CSS 样式、文件浏览器、测试覆盖率

Deno 宣称发布包含上述特性的新版本时,这是自 1.0 以来最大的功能版本。自此,Deno 发布计划从每月的次要版本更改为每六周发布一次新的次要版本,与 Rust 和 Chrome 项目的节奏一致。

独立的二级制文件和语言服务器 (LSP)

2020年最后一个月,Deno 发布的 1.6 增加了两项具有里程碑意义的功能:独立的二进制文件和语言服务器,并实现了deno compile这是用户最需要的一项功能。

Deno 提供内置的语言服务器可以为所有能够使用 LSP 协议的编辑器提供良好的开发体验。VS Code 也因此进行了第三次改造,目前仍在进行中。

2021

Deno 团队目前暂定的计划如下:

详情查看 https://deno.land/posts/deno-in-2020

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Deno 2020 回顾:API 稳定、1.0 发布、重构大型基础设施
加载中

精彩评论

kardashian
kardashian
感觉这个前景不错
TeaWeb
TeaWeb
花了2年多终于发布了1.0,不得不佩服这种坚持的精神!
李英辉
李英辉
node确实问题太多了,那个node_modules目录就是一个黑洞;每次npm install,一堆提示,各种版本冲突,版本过期,一个包被不同的包引用不同的版本,不仅复杂低效,而且很容易就失控
F
Francesca
现在已经1.7版本了,更新速度贼快
李英辉
李英辉
node确实问题太多,不过生态这玩意还真难说。

最新评论(19

p
phper08
TypeScript 还是要编译成 JavaScript 才能运行?
jun_0220
jun_0220
这两个现在不能算同一个东西,生态有交集,谈不上追不追好吧
李英辉
李英辉
node确实问题太多了,那个node_modules目录就是一个黑洞;每次npm install,一堆提示,各种版本冲突,版本过期,一个包被不同的包引用不同的版本,不仅复杂低效,而且很容易就失控
大又
大又
图表长颈龙可爱的一匹
F
Francesca
现在已经1.7版本了,更新速度贼快
jump--jump
jump--jump
deno 牛啊
jump--jump
jump--jump
rust 10年 发布 1.0,我吐了
c
cweijan
不兼容node依赖是最大的问题, 完全可以兼容node的依赖, 将node_modules改为全局共享.
菜狗哉
菜狗哉
或许到时候他们会改造成node能用的,deno也能用,抢用户
dragondove
dragondove
2年算是挺短的了其实。。。开源界蛮多软件都是好几年才发布1.0版本的
返回顶部
顶部