首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python和Ruby中Web编程的协程或延续。为什么不行?

Python和Ruby中Web编程的协程或延续。为什么不行?
EN

Stack Overflow用户
提问于 2012-08-29 06:44:39
回答 3查看 1.1K关注 0票数 20

问题是:为什么延续(在中)和协程(在Python语言中)不能更广泛地用于网络编程?

服务器端web编程由于在请求之间保持状态的问题而变得困难。两个优雅且相关的解决方案是continuations (在Scheme、Ruby和Smalltalk中可以找到)和协程(在Python和Go中可以找到)。

Bruce Tate在他的<超越Java >(O‘’Reilly,2005)中谈到Ruby on Rails和是网络编程中令人兴奋的新发展。对我来说,Smalltalk Seaside 才是真正的突破:使用Smalltalk continuations,Seaside让编写复杂的请求/响应序列变得非常容易。

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

我想知道为什么这些在纸上看起来很好的想法没有在和Ruby中得到更广泛的应用。这只是一个文化问题吗?在这些语言中实现的工具的限制?或者,在Web开发的上下文中,这些方法是否存在根本缺陷?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-29 10:40:35

我使用过Seaside和continuations,这是开发客户端服务器for应用的一个很好的模型。它们简化了传统的客户机/服务器应用程序,我不敢相信为什么没有其他语言可以做到这一点。

但不幸的是,webapps已今非昔比。不同于只请求一个页面,现在使用ajax可以在不同的时间有多个请求。这就是为什么延续不像以前那么有用了。

甚至Avi Bryant (Seaside的原始作者)也说过,在ajax下,使回调更容易(事件驱动编程)比继续更重要。

有关更多信息,请查看quora讨论:http://www.quora.com/Whats-the-best-continuation-based-web-framework

票数 5
EN

Stack Overflow用户

发布于 2012-08-31 23:29:56

你的应用程序应该写在延续/协程框架上,以及支持库。对于初学者来说,这不是一个容易理解的模型。此外,还有更简单的框架,如gevent,它提供了相同的可能性来制作绿色线程,并且更容易使用,因为有了猴子补丁。

票数 1
EN

Stack Overflow用户

发布于 2012-10-13 23:31:02

主要是因为非技术原因。知道Seaside甚至Smalltalk的人很少,所以没有大量廉价的程序员可以雇佣。因此,知道如何安装和维护Seaside系统的服务提供商的数量也很少。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12168583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档