是什么阻止Ryan Dahl(节点的创建者)在Ruby中创建与节点相同的概念而不是Javascript

是什么阻止Ryan Dahl(节点的创建者)在Ruby中创建与节点相同的概念而不是Javascript,javascript,ruby-on-rails,ruby,node.js,Javascript,Ruby On Rails,Ruby,Node.js,也许我错过了Ryan Dahl的采访 但从历史上看,他非常喜欢红宝石,现在仍然如此。为什么他不能使用Ruby来构建与Node相同的概念,而不是Javascript?我对Ruby了解不多,但Ruby不支持所有Javascript特性,如函数编程、闭包等吗 我的问题是技术性的,请提供尽可能多的关于Javascript和Ruby解释器的内部细节 在采访中,他说问题出在Ruby解释器中,但没有真正解释。为什么不使用Javascript呢?非常简短的回答:没有 稍长一点的回答:从技术上讲,没有什么可以阻止

也许我错过了Ryan Dahl的采访

但从历史上看,他非常喜欢红宝石,现在仍然如此。为什么他不能使用Ruby来构建与Node相同的概念,而不是Javascript?我对Ruby了解不多,但Ruby不支持所有Javascript特性,如函数编程、闭包等吗

我的问题是技术性的,请提供尽可能多的关于Javascript和Ruby解释器的内部细节


在采访中,他说问题出在Ruby解释器中,但没有真正解释。为什么不使用Javascript呢?

非常简短的回答:没有

稍长一点的回答:从技术上讲,没有什么可以阻止Ruby实现非阻塞事件异步I/O库。事实上,有好几个这样的库,有些在Node.JS之前就存在,有些是受它启发的。例如

长答案:Ruby有一个标准库。一个非常富有的人。特别是,Ruby有一个非常丰富的I/O库:,,,,,,等等。他们都在堵车。他们都没有参加比赛。它们都是同步的

ECMAScript,OTOH,有一个非常差的标准库。当Node.JS启动时,它实际上是不存在的。现在,在中有一点,但都是数据结构,没有I/O。即使ES2015也没有单一的I/O功能

这让Ryan Dahl从零开始。由于I/O库的每一个小部分都必须是新编写的,所以它可以从头编写为异步的、非阻塞的、事件的。 而且,由于domapi主要是事件式的,ECMAScript程序员已经习惯了这种风格的编程


而在Ruby中,不仅要扔掉所有现有的I/O库代码,还要对所有程序员进行再培训

你是在问我们为什么其他人做出了决定。这需要问他,不是吗?另外,“尽可能多地提供Javascript与Ruby解释器的内部细节”?“那就需要一本书了。”特曼:我的观点是:这不能是一种观点,必须有一些技术上的原因。如果你不能像一个人说的那样简单地解释某件事……你说的“与节点相同的概念”是什么意思?面向异步?为什么一定要有纯粹的技术原因呢?关于解释器的内部细节,这是两本书:一本已经存在于MRI中,我不知道JS实现的等价物。你的回答让我满意:我想学习Ruby,但有点困惑,不知道它是否值得与我更了解的Javascript相比。在采访中,他说问题出在Ruby解释器中,但没有真正解释。为什么不也用Javascript呢?你说的是哪个Ruby实现?在废弃、开发、研究、实验、原型设计和规划的各个阶段,大约有5-7个生产就绪的实现,另外还有10-20个。您在谈论哪个ECMAScript实现?大约有10个生产就绪的实现加上另外10个左右的非生产就绪的实现。如果不说明您所谈论的是哪种实现(以及哪种版本,因为Rubinius在其历史上有过几次实质性的重写),则无法回答。还有,哪个“问题”?@user310291学习Ruby与您提出的任何实现问题有什么关系?口译员有什么“问题”?核磁共振成像在某些问题空间不是一个合适的解决方案,但这是一个单独的讨论。