Luc*_*lho 20 ruby python continuations go coroutine
问题是:为什么不继续(在Ruby中)和coroutines(在Python中)更广泛地用于Web编程?
由于在请求之间保持状态的问题使得服务器端web编程变得困难.两个优雅且相关的解决方案是继续(如Scheme,Ruby和Smalltalk中所见)和协同程序(如Python和Go中所见).
Bruce Tate在他的Beyond Java(O'Reilly,2005)中谈到Ruby on Rails和Seaside是Web编程中令人兴奋的新发展.对我而言,Seaside是真正的突破:使用Smalltalk延续,Seaside使编写复杂的请求/响应序列变得非常容易.
我知道在Tornado和Twisted中使用Python协程来减少回调,但与在单个协程中编写视图/控制器来处理一系列HTTP请求以完成在线购买相比,这有点低级别.
我想知道为什么这些看起来如此优秀的想法在Python和Ruby中没有得到更广泛的部署.这只是一种文化问题吗?以这些语言实施的设施限制?或者,在Web开发的背景下,这些方法存在根本缺陷吗?
我使用Seaside和continuation是开发客户端服务器webapps的漂亮模型.它们简化了传统的客户端/服务器应用程序,我无法相信为什么没有其他的langugage这样做.
但不幸的是,webapps并不像以前那样.现在使用ajax而不是仅请求一个页面,而是在不同时间有多个请求.这就是为什么延续不像以前那么有用的原因.
甚至Avi Bryant(Seaside的原作者)也表示,在ajax下使回调更容易(事件驱动编程)比延续更重要.
请看一下这个quora讨论:http: //www.quora.com/Whats-the-best-continuation-based-web-framework
归档时间: |
|
查看次数: |
1101 次 |
最近记录: |