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

发布于2019-04-21 20:21:54

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