使用Python和Ruby进行Web编程的协程或延续。为什么不?

问题是:为什么延展(在Ruby中)和协程(在Python中)没有更广泛地用于Web编程?

由于保留请求之间的状态的问题,使得服务器端Web编程变得困难。对此的两个优雅且相关的解决方案是延续(如Scheme,Ruby和Smalltalk中所找到的)和协程(如Python和Go中所找到的)。

布鲁斯·泰特(Bruce Tate)在他的《超越Java》(O'Reilly,2005年)中谈到Ruby on Rails和Seaside是Web编程中令人兴奋的新进展。对我而言,Seaside是真正的突破:使用Smalltalk延续,Seaside使得对复杂的请求/响应序列进行编程变得非常容易。

我知道在Tornado和Twisted中使用Python协程来减少回调,但是,与在单个协程中编写视图/控制器来处理一系列HTTP请求以完成在线购买相比,这有点低级。

我想知道为什么这些看起来很不错的想法没有在Python和Ruby中得到更广泛的应用。这只是文化问题吗?这些语言实施的设施有局限性吗?在Web开发的背景下,这些方法是否存在根本缺陷?


手掌心
浏览 203回答 3
3回答

Cats萌萌

您的应用程序应该使用延续/协程框架以及支持库编写。初学者难以理解的模型。此外,还有更简单的框架,例如gevent,它提供了创建绿色线程的相同可能性,并且由于猴子修补而更易于使用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go