这个应用程序不会有传统的页面,而是采用类似于 meebo.com 风格的界面,使用 javascript + jquery,几乎没有静态页面。
我留意到了彗星式的服务器推送范例,并且非常有兴趣做一些概念验证。
你对以下方案有任何建议或优缺点或任何使用经验吗: Python + Tornado vs Scala + Lift?
其他领域的选择可能带来哪些优缺点呢?
注意:这是针对最多两名开发人员的项目,并不需要大规模的分布式和变更团队。
谢谢
我认为Python和Tornado是一个伟大的团队,原因如下:
这意味着它已经包含了你需要用它进行Web开发所需的一切。
同时,如果你发现,在未来的路上,你需要其他后端服务来帮助扩展你的应用程序,Tornado很可能在这方面非常有用。事实上,我在Tornado中编写的后端服务比前端服务还要多(但我的同事则有相反的经验--他更注重前端并发现使用它非常方便)。离题有点,但我们还在Tornado之外使用它们的模板模块,并且非常成功。代码非常模块化,几乎没有相互依赖,因此重用其组件非常容易。
你只需要一天就能理解它。它的代码干净,注释非常详细,并且还有相当不错的文档。我在从未见过它之前就能够使用Tornado 0.2(约2009年)编写出一个生产服务。Tornado的源代码非常透明。
我不知道它是不是绝对最快的东西,但在我使用它的项目中,它承担了一些非常重的负载,包括并发用户数量和数据传输(例如高容量图像上传),它在稳定性方面完全坚如磐石,并且足够快,我甚至没有考虑横向扩展或获得更大的硬件。
我经常使用Python进行web开发,使用Tornado进行开发(有时也会使用Django)。但是,我也将其用于与Web服务本身完全无关的事情,例如系统管理员/自动化任务、报告和数据整理(例如,我使用Python编写Hadoop作业)以及其他需要标准库模块(os、sys、shutil、itertools、collections等)快速构建的事情。我可以在几乎任何环境中使用Python,不管输出内容是通过流、浏览器、Fat GUI还是控制台。
此外,Python拥有一个非常出色的社区,由一群聪明友好的人组成。我不能将其与Scala社区进行比较,但与许多其他社区相比,Python很容易成为我的最爱,这也是我如此迷恋它的原因之一。我是多语言用户,但如果我有问题,我最想向Python社区成员提出问题 :)
Scala是一种更加简洁的语言,允许您随意使用面向对象和函数式编程范式。
Python则采用了更多的语法糖,并且奉行“只有一种正确的方法”的哲学。
Scala通常与Eclipse/Idea等IDE一起使用,虽然也支持vim/emacs等轻量级编辑器,同时使用SBT构建。如果您不习惯这些工具,第一次设置可能需要一些努力。
Python通常与更轻量级的编辑器一起使用。通过默认方式重新运行更新的Python脚本更加容易。
Lift主要针对Web应用程序,可以实现类似桌面应用程序的响应性和行为。如果您只想创建主页,则肯定有其他框架可供选择,它们不需要您像使用Lift那样学习太多知识。