过去几个月我一直在使用Grails,我非常喜欢它,特别是GORM。但是,我对Scala的Lift感兴趣。因此,我想知道您对哪种Web应用程序更适合这两个框架中的哪一个或者仅仅是品味问题,哪个框架可以使用?
最后,您认为哪些框架将来会更多使用? 我觉得Grails远未达到临界质量而且仍然非常模糊(在过去的几个月里,我有机会与中型公司和IT初创公司合作,主要使用JVM堆栈,只有一个人知道并且使用Grails)我甚至不确定它是否可以成为Java世界的“RoR”(事实上,即使其他框架具有正增长率,过去几个月也会出现增长下降)。我喜欢Groovy,这很容易学习,但我注意到它对于某些任务来说有多慢。
另一方面,Scala似乎更受欢迎(Tiobe Index),Twitter现在使用它的事实使它在博客圈中的存在更多,有很多爱好者和仇恨者嗡嗡作响。它以快速和可扩展而闻名。然而,对于许多开发人员而言,这种语言似乎有点难以理解和学习(所以它可能永远不会获得主流地位)。 Lift鲜为人知,我已经阅读了一些报告,它更适合小型应用程序(少于20个域类)。
通过查看Groovy-Grails现在主导的书籍数量,但许多出版商都有Scala书籍,所以我认为这种优势不会持续很长时间。
最后,我们遇到的问题是,这两种语言和框架仍然支持较差的IDE(它在白天变得越来越好,但远远超出了Java商店期望的效率)。
我不想发动火焰战争,但我会非常有兴趣听取其他用户的意见。
答案 0 :(得分:9)
这里接受的答案对Groovy采取了一种非常无知的观点 - 它是一种现代的,动态的语言(动态与静态本身就是一场巨大的争论,而且在这里并不特别重要)。这是设计上的,因此不是缺点,只是差别。它有许多Java没有的现代语言功能,如闭包,本机正则表达式,多态迭代,一些可选的静态类型(讨论的问题,但也看看groovy ++),列表和地图的本机语法等等.-你可以在这里查看比较http://groovy.codehaus.org/Differences+from+Java
为了解决Grails vs. Lift的实际问题,我会说Grails会动手。它背后有SpringSource,只需查看插件页面http://www.grails.org/plugin/category/all - 我甚至无法找到可用于Lift的插件或等效插件。 Grails还采用了最新的云友好技术,具有本机RabbitMQ消息支持以及MongoDB和Redis的交钥匙GORM支持等功能。
答案 1 :(得分:1)
netbeans 6.7中的Grails支持非常好,以及Maia支持intellij的想法。
Eclipse仍然非常糟糕。
我看着电梯,但现在担心可用的资源;这将在未来发生变化,但我的项目不能等待。答案 2 :(得分:1)
Grails是一个不错的主意(但只是从rails中“偷走”)但是groovy家伙对获得正确的Eclipse支持不感兴趣这一事实阻碍了它的成功。我甚至在Grails列表中看到Eclipse问题根本没有被回答。
我同意Tim的观点,认为Netbeans 6.7最终提供了前半部分可用的开源IDE支持groovy / grails - 最终,SpringIDE还将提供更好的groovy / grails支持。
许多Java人喜欢Java的原因是静态类型,这使得工具可以帮助您解决很多问题。这种语言像groovy一样丢失了。 是的,我可以用Java编写每一个非常重要的Code代码并且仍然使用Grails - 但是,为什么我只需要保存一堆粘合代码,而不是学习如何高效地使用Java框架? / p>
结束:我还没有看scala,但是用grails构建了一些简单的应用程序 - 我倾向于回到java,甚至重新实现需要在普通Java框架中进一步开发的每个应用程序 - 我认为检票口和Seam。
我也会看看Scala / Lift,我听到很多好事!
顺便说一句:我会比较社区并查看邮件列表 - 有多少人,他们是否在重要问题上得到了很好的答案?Grails似乎从近50%没有回答率,我觉得这很糟糕。
答案 3 :(得分:1)
我想具体回答“为哪种应用程序”这个问题。 Grails和Lift的哲学之间的主要区别似乎是Grails强制执行MVC,而Lift似乎更自由,即它不强制执行MVC,但如果你愿意,它提供了足够的途径来使用MVC。
此外,对于“单页面应用程序”,Lift似乎也非常出色,特别是如果您需要使用Comet等技术实现服务器推送功能(这显然并不意味着它对其他类型的应用程序不利)。另一方面,Grails似乎更适合“企业化”应用程序,特别是如果您已经熟悉Spring和Hibernate但希望您的应用程序更简洁(使用约定优于配置)而不是非Grails应用程序使用这些技术。
参考文献:
<强>声明:强>
我刚刚开始探索Lift并使用Grails构建了一些简单的应用程序。
答案 4 :(得分:1)
Grails2.0的所有性能改进和改进,以及IntelliJ 11为该框架提供的强大支持,能够将几乎任何高级Web技术插入到您的grails应用程序中,并且是 - VMware背后的重量 - 我真的不明白Lift如何成为一个优势或一个好的选择。想想在同一个应用程序中使用两种不同的语言,需要团队中的双重专业知识等。
最初的问题已经发布了2年多以前,我认为时间显示了哪一方是开发社区的选择;)