事件循环作为语言构造公开的其他语言(框架)?

Geo*_*pty 2 event-loop node.js

http://nodejs.org/#about,它说如下:

"节点在设计上与Ruby的事件机器或Python的Twisted等系统相似并受其影响.节点将事件模型更进一步 - 它将事件循环呈现为语言结构而不是库."

是否有其他框架或语言同样暴露事件循环?

Ivo*_*zel 5

说实话,我认为目前还没有什么东西可以与 Node.js 相媲美。

为什么?基本上,由于 JavaScript 从一开始就是单线程的,这使得该语言发展成为今天的样子,一种非常适合异步编程的语言,就像在 Node.js 中所做的那样。

如果您想要类似 Node 的体验,函数是一流的对象,并且必须具有闭包例如,您也可以将普通 C 封装在事件库中并使用它。但这会有多有趣呢?即使使用 Twisted,您也无法获得 Node.js 的体验。

第二点是,Node.js 除了模块的同步功能外fs,没有阻塞功能,因此虽然您当然可以在 Python 中进行这种风格的编程,但您永远不知道该库调用是否会被阻塞你的整个程序。并杀死服务器的吞吐量。

Node 也很快,就像“非常快”一样。V8 绝对领先于 Python 和 Ruby,是的,您可以为两者编写 C 扩展,但您也可以为 Node.js 这样做。使用 V8 的另一个优点是,谷歌在该引擎上投入了大量的时间/金钱,另一个高达 2 倍的改进已经在Crankshaft上进行。

Node.js 有更多优点,它是一个完整的框架(而 Twisted 主要是异步网络)并且它是 JavaScript。

后者可能听起来很愚蠢,但是能够重用代码而不必进行上下文切换,以及能够使用成熟的框架进行 DOM 操作(嗯,那就是一旦 jsom 进入更稳定的状态)是另一个杀手级功能。

如果您还没有看过,我建议您观看我们的Tag Wiki上列出的一些演讲。
尤其是 YUI 展示了在不久的将来等待着我们的可能性。

总而言之:
尽管有相当多的框架具有事件循环,但仅具有循环本身并不会给您带来与 Node.js 相同的体验,因此您不应期望在执行操作时获得类似的体验例如,在 C 或 Java 中。


Geo*_*pty 5

Tcl一直有这种能力(过去20年).见http://www.tcl.tk/about/netserver.html

这并不是说Tcl做 - 或应该做 - Javascript和/或node.js所做的一切.但它是关于"其他框架或语言......同样暴露事件循环"的问题的有效答案.