14

过去几个月我一直在使用 Grails,我真的很喜欢它,特别是 GORM。但是,我对 Scala 的 Lift 很感兴趣。因此,我想知道您对哪种 Web 应用程序更适合这两个框架中的哪一个的看法,或者这只是一个品味问题,使用哪个框架?

最后,您认为哪些框架在未来会被更多人使用?我有一种感觉,Grails 远未达到临界质量,它仍然非常模糊(在过去的几个月里,我有机会与主要使用 JVM 堆栈的中型公司和 IT 初创公司合作,只有一个人知道并且使用 Grails),我什至不确定它是否可以成为 Java 世界的“RoR”(尽管其他框架的增长率为正,但过去几个月的增长率确实有所下降)。而且我喜欢 Groovy,它真的很容易学习,但我注意到它对于某些任务可能会很慢。

另一方面,Scala 似乎更受欢迎(Tiobe Index),而 Twitter 正在使用它的事实使它在博客圈中的影响力更大,许多爱好者和仇恨者都在嗡嗡作响。它以快速和可扩展而闻名。然而,对于许多开发人员来说,这种语言似乎有点难以理解和学习(所以它可能永远不会成为主流)。Lift 鲜为人知,我读过一些报告说它更适合小型应用程序(少于 20 个域类)。

从出版的书籍数量来看,Groovy-Grails 目前占主导地位,但很多出版商都有 Scala 书籍的作品,所以我认为这种优势不会持续太久。

最后,我们遇到的问题是语言和框架仍然缺乏对 IDE 的支持(它每天都在变得更好,但与 Java 商店期望的生产力相去甚远)。

我不想引发一场激烈的战争,但我很想听听其他用户的意见。

4

5 回答 5

9

这里公认的答案对 Groovy 持一种非常无知的看法——它是一种现代的、动态的语言(动态与静态本身就是一场巨大的争论,在这里并不特别相关)。这是设计使然,因此不是缺点,只是不同之处。它有很多 Java 没有的现代语言特性,例如闭包、原生正则表达式、多态迭代、一些可选的静态类型(有争议的问题,但也看看 groovy++)、列表和映射的原生语法等 - 你可以在这里看到一个比较http://groovy.codehaus.org/Differences+from+Java

为了解决 Grails 与 Lift 的实际问题,我会说 Grails 毫无疑问。它背后有 SpringSource,只需查看插件页面http://www.grails.org/plugin/category/all - 我什至找不到可用于 Lift 的插件或等效插件。Grails 还处于最新的云友好技术之上,具有原生 RabbitMQ 消息传递支持以及对 MongoDB 和 Redis 的统包 GORM 支持等特性。

于 2011-03-15T05:41:47.083 回答
1

Grails 是一个好主意(但只是从 rails “偷来的”),但 groovy 的家伙对获得适当的 Eclipse 支持不感兴趣这一事实阻碍了它的成功。我什至看到 Grails 列表中根本没有回答 Eclipse 问题。

我同意 Tim 的观点,Netbeans 6.7 最终为 groovy/grails 提供了前半程可用的开源 IDE 支持——最终,SpringIDE 还将提供更好的 groovy/grails 支持。

许多 Java 人喜欢 Java 的原因是静态类型,它使工具能够在很多事情上为您提供很多帮助。像 groovy 这样的语言会丢失这一点。是的,我可以用 Java 编写每一段非常重要的代码,并且仍然使用 Grails——但是,我为什么要为了节省一堆胶水代码而这样做,而不是学习高效地使用 Java 框架呢?

结束:我还没有看 scala,但是用 grails 构建了一些简单的应用程序——我倾向于回到 java,甚至在一个普通的 Java 框架中重新实现每个需要进一步开发的应用程序——我认为 wicket 和 Seam .

我还会看看 Scala/Lift,我听说了很多关于它的好消息!

顺便说一句:我会比较社区并查看邮件列表 - 有多少人,他们的重要问题是否得到了很好的答案?

Grails 的未回答率似乎接近 50%,我觉得这很糟糕。

于 2009-07-17T19:34:19.387 回答
1

netbeans 6.7 中的 Grails 支持非常好,以及 Maia 中的 idea intellij 支持。

Eclipse 仍然很糟糕。

我看了电梯,但担心现在可用的资源;这将在未来改变,但我的项目等不及了。

于 2009-07-13T22:00:12.030 回答
1

有了 Grails2.0 的所有性能改进和进步,IntelliJ 11 为框架提供了强大的支持,能够将几乎任何高级 Web 技术插入到您的 grails 应用程序中。是的 - VMware 支持它 - 我真的不知道'不知道电梯如何成为一个优势或一个不错的选择。想想在同一个应用程序中使用两种不同的语言,需要团队中的双重专业知识等。

最初的问题已经在 2 多年前发布了,我认为时间表明开发社区的选择在哪一边;)

于 2012-01-26T06:12:20.740 回答
1

我想具体回答“适用于哪种应用程序”的问题。Grails 和 Lift 的哲学之间的主要区别似乎是 Grails 强制执行 MVC,而 Lift 似乎更自由,即它不强制执行 MVC,但如果您愿意,它提供了足够的途径来使用 MVC。

此外,Lift 似乎非常适合“单页应用程序”,特别是如果您需要使用 Comet 等技术实现服务器推送功能(这显然并不意味着它不适合其他类型的应用程序)。另一方面,Grails 似乎更适合“企业”应用程序,特别是如果您已经熟悉 Spring 和 Hibernate,但希望您的应用程序比非 Grails 应用程序更简洁(使用约定优于配置)正在使用这些技术。


参考:

  1. 简单提升,第 13 章
  2. 单页应用

免责声明:
我刚刚开始探索 Lift 并使用 Grails 构建了一些简单的应用程序。

于 2011-04-03T16:58:25.413 回答