内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
问题是:为什么连续(在Ruby中)和协同(在Python中)没有更广泛地用于Web编程?
服务器端Web编程由于在请求之间保持状态的问题而变得困难.。这方面的两种优雅且相关的解决方案是连续(如Scheme、Ruby和Smalltalk中的)和协同(如Python和Go中的)。
布鲁斯·塔特超越Java(O‘Reilly,2005)谈到RubyonRails和海滨作为令人兴奋的Web编程的新发展。对我来说,海滨这是真正的突破:使用SmallTalk连续,Seby使得编写复杂的请求/响应序列变得非常容易。
我知道在“旋风”和Twisted中使用Python协同器来减少回调,但这与在单个协同线中编写视图/控制器来处理一系列HTTP请求以完成在线购买相比,有点低。
我想知道为什么这些在纸面上看起来很好的想法没有在Python和Ruby中得到更广泛的应用。这只是文化问题吗?以这些语言实施的设施的限制?或者,在Web开发的背景下,这些方法是否存在根本缺陷?
在Ajax下,使回调变得更容易(事件驱动编程)比继续更重要。
应用程序应该在连续/协同框架上编写,以及支持库。对于初学者来说,这不是一个简单的模型。此外,还有更容易的框架,比如gEvent,它提供了同样的生成绿色线程的可能性,并且由于猴子的补丁而更容易使用。