我应该使用GAE + Lift来实现基于Scala的webapp吗?

时间:2013-10-08 06:05:28

标签: google-app-engine scala playframework playframework-2.0 lift

之前已经提出过这样的问题 - 但现在所有的答案都已过时了。

我期待着开发基于Scala的webapp。我理解这个问题可以分为两个,但我将它们作为一个发布,因为它们依赖于相同的上下文,存在对托管平台和框架的依赖。

我在Play上看过多个(很棒的)辩论!和提升,但找不到比较好玩! 2.1和升降机。如何确定哪一个更适合我的场景(社交网络网站)?

同样地,这个discussion有一些非常好的论据,如果我使用Lift,可以使用哪个平台,但它是从2010年开始,似乎已经过时了。推荐的提供商(stax.net)已经死了(或者我猜它与cloudbees.com合并)。我个人倾向于GAE,因为他们很快就会开始,但不确定问题是否仍然存在:

  1. 支持演员(我不确定Akka是否帮助我们解决了这个问题)
  2. 由不同JVM提供给定会话的请求,恕不另行通知运行应用程序
  3. 引用David Pollak(Lift的第一作者):
  4.   尽管Google声称(我是每个人),GAE仍然是缓慢且不可扩展的   与之相关的尝试扩展GAE应用已经失败并消失了   别处)。 GAE将您锁定在非常不理想的存储中   机制。 GAE是免费的,但Stax也是免费的,而且有许多便宜的   选项包括SliceHost。接下来,你有Amazon EC2和   Rackspace公司。所以,我没有找到任何人使用GAE的充分理由。   如果没有充分的理由使用GAE,那就投入大量资源   围绕GAE JVM不兼容性进行编码(例如,没有新线程)   似乎是浪费。

    如果我选择GAE,另一个问题是缺少Play! 2.1支持。我仍然没有看到一个模块。另一个问题是难以迁移到其他数据库(虽然我听说将来会相对容易地迁移到MongoDB)。最糟糕的情况是退出GAE并使用AppScale。

2 个答案:

答案 0 :(得分:5)

我个人使用LiftCloudbeesMongoLab作为我大部分项目的首选。我尝试了几种云托管服务无济于事(特别是Heroku和RedHat。由于David Pollak的帖子你已经引用过,我认为我没有尝试过GAE)。要使用cloudbees,您只需要一个sbt plugin。然后就像运行cloudbees-deploy目标一样简单。在一分钟内,您的代码就会启动并运行。我觉得这很容易。我和Mongo一起去主要是因为这个g8 template非常好(注意,现在有一个SQL equivalent

我真正喜欢Cloudbees和MongoLab的另一件事是他们都有免费服务。这对我很好,因为我只是在空闲时间从事这些项目,所以我不想花钱,而我的想法是半生不熟的。

至于Lift,我无法与Play相提并论。我下载/安装了游戏,并立即被MVC如何关闭。我觉得视觉优先方法虽然对我来说很陌生,但似乎是一种更直观,更强大的构建Web应用程序的方法。我喜欢Lift不会让我觉得我确实正在开发一个Web应用程序。我经常觉得MVC框架试图将所有的HTML / CSS / JS等保持在一起。

答案 1 :(得分:2)

这个问题非常开放,所以我将分享我对Scala网络应用程序开发的经验和意见,因为它可能会帮助您做出决定。

我使用Scalatra和Scalate使用Jetty作为服务器构建了我的第一个scala Web应用程序。该应用程序托管在一个Amazon EC2实例上,我对此没有任何问题...它自2011年底以来一直在运行,只有一个小小的短片需要10分钟才能解决。我发现学习在Web应用程序中使用Scala是一种很好的体验。

http://www.scalatra.org/

Typesafe(http://typesafe.com)似乎选择了Play框架,因此对于我的下一个基于scala的网络应用程序,我很可能会选择Play。我在Play Framework上阅读的一本书是“Play for Scala”。它刚刚于本月发布(2013年10月)。

http://www.manning.com/hilton/

我的印象是,Lift是过去的首选框架,但这已转移到Play框架。