Python + Tornado vs Scala + Lift?

flo*_*nau 13 python scala comet tornado lift

我正在寻找一个基于谷歌地图的网络应用程序.我最初的想法是,在第一阶段,重点应放在前端,后端应该易于编写和原型,并应尽可能地帮助前端的发展.

没有"经典"页面,只有meebo.com风格的界面.javascript + jquery.(意思是,如果没有静态页面,则很少).

我的眼睛已经抓住了彗星风格的服务器推送范例,我真的很有兴趣用这个做一些概念证明.

您是否有任何建议或优缺点或使用经验:

Python + Tornado vs Scala + Lift

Web应用程序的其他方面还有哪些优点或缺点可供选择?

注意:这适用于最多2位开发人员,而不是大型分布式和变更团队.

谢谢

jon*_*esy 14

我认为Python和Tornado是一个伟大的团队,原因如下

  • Tornado实际上是一个IOLoop,碰巧带有一个运行在它上面的HTTP实现(以及一些帮助者).

这意味着它带有您使用它进行Web开发所需的一切.

这也意味着,如果您发现需要其他后端服务以帮助扩展您的应用程序,龙卷风很可能在该领域得到很好的利用.我实际上已经在Tornado中编写了比前端更多的后端服务(但是同事与它有着完全相反的体验 - 他更加面向前端并且发现它与使用它一样好).有点偏离主题,但我们也在龙卷风之外使用他们的模板模块取得了巨大的成功.代码非常模块化,并且几乎没有相互依赖性,因此重用其组件是轻而易举的.

  • 你可以非常非常快速地学习它,并且能够很好地了解它.

你需要花一天的时间来弄明白.它的代码很干净,令人难以置信的评论很好,而且它还有不错的文档.我能够在大约一个星期内用Tornado 0.2(大约2009年)制作一个以前从未见过的制作服务.龙卷风源代码非常反魔法.

  • 它快速,稳定.在负载下.

我不知道它是否是存在的绝对最快速的东西,但在我使用它的项目中,就并发用户数量和数据传输而言,它承担了一些非常重的负载(例如,高容量图像上传),它在稳定性方面是完全坚固的,并且b)足够快,我不必考虑水平缩放或获得更大的硬件.

  • Python非常灵活且适应性强.

我经常使用Python进行使用Tornado进行Web开发(以及其他一些事情,包括偶尔使用Django).但是,我也将它用于与Web服务本身完全无关的事情,例如sysadmin /自动化任务,报告和数据修改(例如,我在Python中编写hadoop作业),以及其他标准库模块(os, sys,shutil,itertools,collections等)使构建起来非常快.我几乎可以在任何环境中使用Python,无论输出是通过流,还是浏览器,胖GUI或控制台.

它周围还有一个非常聪明的社区,非常友好.我无法将它与scala社区进行比较,但与许多其他社区相比,Python很容易成为我最喜欢的,并且与我为什么如此依赖它而有很多关系.我是一个多语言,但如果我有一个问题,我最想向Python社区成员提出这个问题:)


soc*_*soc 6

Scala是一种基本上更清晰的语言,使您可以根据需要使用面向对象和功能范例.

Python有更多的语法糖,并且拥抱"只有一种方法可以做到这一点"的理念.

Scala通常与Eclipse/Idea等IDE一起使用 - 虽然也支持vim/emacs,并且使用SBT构建.如果您不习惯这些工具,可能需要一些努力才能在第一时间进行设置.

Python通常与更轻量级的编辑器一起使用.默认情况下,重新运行更新的Python脚本更容易.

Lift真正针对Web应用程序,实现类似桌面的响应和行为.如果您只是想创建一个主页,那么肯定还有其他框架,这些框架并不能让您像Lift一样学习.