@qinyun
2018-05-31T13:17:04.000000Z
字数 1002
阅读 2014
未分类
近日,Node之父Ryan Dahl在GitHub上发布了名为deno的新项目,deno是V8的TypeScript运行时项目。它的特性包括:
在以上特性中,最令人疑惑的就是deno竟然不兼容Node,这不免让人怀疑Ryan Dahl创建deno的目的,有些开发者认为deno的出现是为了取代Node,这是否可信。我们先来看看作者在GitHub Issue回复开发者的几个问题:
Node可用,Deno尚未投入使用,README文件提供了一些技术细节,但是从更高层面上来说,Deno尽可能简化V8与系统API的耦合,这会让系统更加简单和模块化,而且沙箱更安全。
再者,使用Golang而不是C++作为绑定语言,这样,添加高级功能时会比在Node中更加容易,EG http2.0 支持最多能添加一些路由API和传递一些信息到protobuf文件。
Ryan Dahl称deno诞生的目的是为了创建更简单和安全的非浏览器runtime,它在这个时候出现,是因为现在的开发工具比2009年更好。
所以,我们是不是可以这样理解Ryan Dahl这句话的意思,现在常用的非浏览器runtime主要是Node,但Node目前还不够简洁和安全,随着开发生态不断地发展,Node的一些地方需要进行大改革,如Node包管理器npm,但是又不能把npm砍掉,所以只能重新设计一个新“Node”,再加上deno又不兼容Node,所以我们大胆猜测deno不是为了改进Node,而是为了取代Node。
再者,Node此次支持TypeScript而不是JavaScript,我们知道,TyperScripts兼容JavaScript,对那些原来Node的开发者来说,迁移的成本就不会太高。