采访Node.JS的创始人Ryan Dahl
发布于 4年前 作者 kongwu 6772 次浏览 最后一次编辑是 3年前

node.js最近在海外很热,国内很多人也都对其非常有兴趣,包括我们。BostInnovation 的 Kevin McCarthy 最近刚采访了Node.JS的创始人:Ryan Dahl ,问的都是大家对node.js感兴趣的几个问题,了解一门语言,就一定要了解作者的思维方式,所以翻译下分享给大家,翻的质量一般请见谅,原文地址是: http://bostinnovation.com/2011/01/31/node-js-interview-4-questions-with-creator-ryan-dahl/



BostInno: 你在创建node的时候,是在试图解决什么问题?

我经常需要写一些基于事件的程序,我喜欢设计开发基于事件的服务器,因为我觉得他们很容易理解,状态被保存,有可以不断的修改状态。你可以无限的接收socket请求,我可以只使用非阻塞IO就可以使服务器的延迟非常低。

为什么大多数人不设计一种更简单和有效率的程序,因为他们需要用阻塞的库。基于事件的设计是一种全有或者全无的方式,如果你不阻塞IO的话,你可以仅用一个操作系统线程来处理大量的IO,但是如果你做了,那么了你将锁住你的所有流程。为每个IO使用一个线程也是不错的,他并不是很慢。我想创建一个仅使用非阻塞IO的系统。

同时,我当时正在写大量的小型HTTP服务器。我经常很沮丧,因为我不能从web服务器那里获得原始的请求数据,除非我写一个Apache或者Nginx的模块。而动态分析器可以很容易构造一个服务器。


BostInno: 为什么你开始要选择Javascript作为node的语言呢?

Dahl: 开始我没有那么做,我用C、Lua和Haskell做了几个失败的小项目。Haskell很不错,但是不还没有足够聪明可以去玩通GHC(Haskell的编译器)。Lua是一种不太理想,但是很可爱的语言,我并不喜欢他,因为他已经有了大量的包含阻塞代码的库了。无论我做了什么,有些人总是愿意去读取有阻塞的Lua库。C语言有一些和Lua相似的问题,而且它的开发门槛有些高。我开始的确想写一种像node.js的libc,我也的确做了一段时间。这个时候V8也出来了,我也做了一些研究,我突然意识到,Javascript的确是一种完美的语言,他有我想要的一切:单线程,没有服务端的IO处理,没有各种历史存在的库。


BostInno: 接下来3个月、6个月或者12个月node将如何发展?

Dahl: Node是一个强制不共享服务器的任何资源的单线程、单进程系统。他的确有一些好的网络库,我相信这是一个设计很大型的分布式系统的很好的基础。而这些节点需要被组织,通过一个通信协议,互相通知对方如何连接。接下来几个月,我将致力于写一些能够支持这种网络的库,以使分布式网络程序开发更加容易。

在今年2月,我们将发布第二个稳定版本:V0.4。这个版本将大大提升内存利用率,和一个新的SSL/TLS系统,一个内建的调试器,更快的定时器,删掉了一些缺陷,以及一个新的V8的版本。 有希望在接下来6个月之内,我们将试图发布一个Node 1.0的正式版本。 我的一个想法是限制核心程序的大小,不让他变的太大,我们我们不会无休止的增加一些特性。 V1.0将看上去很像现在的Node, 目前我们仍然有大量的bug需要修复。

BostInno: 还有任何你希望做的东西吗?

Dahl: 是的,许多事情。 例如,我希望我没有用过CommonJS模块系统,它实在太复杂,并且和浏览器的工作方式很不同。 我希望我没有用过WAF构建系统,他可以工作,也不错,但是他做了比需要更多的事情。我也许可以从WAF中挖掘挖掘一些东西出来。

「END]

1 回复
回到顶部