想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
Improve this question
也许我在Ryan Dahl的采访中错过了一些东西https://www.youtube.com/watch?v=SAc0vQCC6UQ
但从历史上看,他曾经非常喜欢Ruby。他为什么不能使用Ruby构建与Node相同的概念而不是Javascript?我对Ruby不太了解,但是Ruby不支持所有Javascript功能,例如函数式编程,闭包等。
我的问题是技术问题,请尽可能提供有关Javascript和Ruby Interpreter的内部详细信息。
他在采访中说问题出在Ruby Interpreter中,而没有真正解释。为什么在Javascript中也没有?
最佳答案
很简短的答案:没什么。
答案更长一点:从技术上讲,没有任何事情可以阻止为Ruby实现无阻塞事件式异步I / O库。实际上,有很多这样的库,有些在Node.JS之前存在,有些是受其启发的。例如。 EventMachine,Cool.IO, Celluloid::IO
。
详细回答:Ruby有一个标准库。一个非常有钱的人。尤其是Ruby,其I / O库非常丰富: IO
, File
,fileutils,net/ftp,net/http,net/imap,net/pop,net/smtp,net/telnet,resolv,socket,webrick等。所有这些都被阻止了。他们都没有事件。它们都是同步的。
OTOH ECMAScript具有非常差的标准库。当Node.JS启动时,它实际上不存在。现在,在ECMAScript 2015中,有一点点,但都是数据结构,没有I / O。甚至ES2015也没有单个I / O功能。
这使Ryan Dahl可以完全从头开始。由于无论如何都必须重新编写I / O库的每一小部分,因此可以从头开始编写它,以实现异步,非阻塞,事件化。
而且,由于DOM API大多是事件事件,因此ECMAScript程序员已经习惯了这种风格的编程!
在Ruby中,不仅要丢弃所有现有的I / O库代码,还必须对所有程序员进行重新培训!
关于javascript - 是什么导致Ryan Dahl(Node的创建者)无法在Ruby中创建与Node相同的概念,而不是Javascript ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33577474/