Deno:来自 Node 之父的 V8 TypeScript 运行时

阅读数:2180 2019 年 1 月 2 日

话题:前端语言 & 开发Node.js

Deno是 Node.js 原作者 Ryan Dahl 重新思考服务器端 JavaScript 运行时的产物,旨在解决 Node.js 中存在的遗憾和挑战。

Node.js 是迄今为止使用最广泛的服务器端和命令行 JavaScript 运行时。随着它的广泛普及,如果不做出重大的兼容性变更,Node.js 可能带来的变化将非常有限。

几年前,Dahl 在离开 Node.js 和 JavaScript 之后,由于对机器学习的兴趣日益增加,又回到了 JavaScript 生态系统。2009 年,在 JSConf.eu 上初次宣布 Node.js 之后,Dahl 又回到了今年的 JSConf.eu 上,他表达了 Node.js 存在的遗憾,并介绍了 Deno——尝试解决 Node.js 问题的早期方案。

Dahl 对 Node.js 的几个重要方面感到遗憾,包括不提供异步模式、Node.js 的整体安全架构、内部构建系统、包管理以及模块处理。

尽管 Node.js 大获成功,并且非常受欢迎,但这些批评始终如影随形。很多早期的努力试图将一些替代方案纳入 Node.js,但都遭到了来自核心 Node.js 团队的阻力。由于 Promise 和模块被引入到语言标中,所以它们在 Node.js 中也发生了变化,但即使到了今天,Node.js 内部也未能充分利用它们的全部功能。

Deno 提供了一个安全的 V8 运行时引擎,以 TypeScript 为基础,提高了代码的准确性,并将编译器内置到 Deno 可执行文件中。

Deno 致力于更好地利用 JavaScript 安全沙箱,以及简化模块和构建系统。

Dahl 的批评者还指出,Dahl 在演讲中没有提到 Node.js 的其他一些问题,人们担心历史会重演。例如,Dahl 将 Node.js 的原始版权给了 Joyent,这导致了之前的冲突以及昙花一现的IO.js。IO.js 的 fork 问题通过 Node.js 基金会和当前的项目治理模型得到了解决。目前,Deno 版权属于 Ryan Dahl。

Deno 初步定位为 Node.js 的替代品,但还不成熟,也不稳定,所以也还没有繁荣的生态系统。Deno 是基于 MIT 许可的开源软件,可以通过Deno GitHub 项目进行贡献和反馈。

英文原文:https://www.infoq.com/news/2018/12/deno-v8-typescript