27

Grails 与 Rails。哪个支持更好?哪一个是开发中型应用程序的更好选择?最重要的是哪个插件多?

4

13 回答 13

33

另一件值得一提的事情:两个框架的设计理念在模型方面有些不同。Grails 更“面向领域”,而 Rails 更“面向数据库”。
在 Rails 中,您基本上是从定义表开始(使用字段名称及其细节)。然后 ActiveRecord 会将它们映射到 Ruby 类或模型。
在 Grails 中,情况正好相反:您从定义模型(Groovy 类)开始,当您点击运行时,GORM(Grails ActiveRecord 等效项)将创建相关的数据库和表(或更新它们)。这也可能是您在 Grails 中没有“迁移”概念的原因(尽管我认为它会在未来的某个版本中出现)。
我不知道一个是否比另一个更好。我想这取决于你的上下文。

话虽如此,我仍然在想选择哪一个。正如 Tom 所说,如果您依赖 Java,您仍然可以选择 JRuby——因此 Java 重用不应该是您的唯一标准。

于 2008-09-18T13:48:48.407 回答
16

我想如果您是一名 Java 开发人员并且想要访问所有现有的企业 Java 库和功能……请选择 Grails。

于 2008-09-17T10:33:31.817 回答
9

Rails 更成熟,有更多插件,有更大的用户群,有更好的文档和支持。如果需要,它还可以在 JRuby 上运行,从而可以访问 Java 库。

Grails 有一些有趣的特性,但还不能声称与 Rails 一样。但是,如果您主要是 Java 或 groovy 开发人员,您可能更喜欢它。否则,我建议现在将 Rails 用于中型项目。

于 2008-09-17T11:08:44.757 回答
6

我说 grails 是因为那里有很多 Java 库。但是由于我来自java背景,所以我有点偏见。

如果应用程序不会很大,任何一个都足够了——并且选择应该取决于现有的基础设施。假设您已经运行了一个 java servlet 容器服务器,那么您最好还是坚持使用 grails,而不是为 rails 提供另一个服务器。

于 2008-09-18T07:15:55.230 回答
6

我以前使用过rails,非常喜欢它。但是,我现在的公司有很多遗留的 Java 代码,因此自然而然的选择是 grails。

当我开始使用 Rails 时,很少有网站在使用它,而且文档也很糟糕。有很棒的 railscast 和 railsforum.com,但任何不寻常的事情,你都是靠自己的。部署它是一场噩梦,使用 mongrel-clusters 并没有真正为生产做好准备。正如每个人都可以看到的那样,现在这是非常不同的,更加成熟并部署在任何地方。

一年多前,由于我上面提到的原因,我不得不学习 grails。过渡到 grails 非常容易,因为它与 Rails 非常相似。同样,它与 Rails 的早期阶段非常相似,但有一个巨大的不同。因为您可以轻松导入 java 代码,grails 用户可以使用几乎所有可用的生产测试 java 库。我已经能够成功地将我们遗留的 java 项目集成到 grails 项目中,并且只需要很少的调整。您还会注意到插件开发非常迅速,主要是因为开发人员只是编写 grails “钩子”,但底层代码是旧的 java 库。部署 grails 也只是部署一个 WAR 文件。

您必须查看的另一件事是IDE。如果您对 eclipse 感到满意,那么用于 grails 的 eclipse-STS 将为您提供所有的花里胡哨。我仍然看到很多 Rails 开发人员使用 textmate,尽管 ruby​​mine 取得了长足的进步(早期版本的 ruby​​mine 曾经让我的 ubuntu 陷入停顿)。

归根结底,两者都是很棒的 MVC 框架。RoR 更加成熟,拥有更多的开发人员。Grails 是 RoR 3-4 年前所处的位置,但我看到进展要快得多。希望这可以帮助。

于 2012-01-03T23:39:32.977 回答
5

这取决于您使用 Ruby 和/或 Groovy 的技能,是否有遗留的 Java 系统需要处理,以及您想在哪里部署应用程序。

我最初对 Rails 很感兴趣。当时,没有选择在工作的应用服务器上进行部署,因为工作全是 Java。这已经改变了。我不能放弃现有的 Java 基础设施和应用程序而转向 Ruby,即使我认为 Rails 很棒。Grails 之所以有效,是因为我们可以将 Groovy 与现有的 Java 解决方案混合搭配。

工作之余,Ruby 更容易在价格范围的低端找到托管服务。因为 Grails 使用了很多现有的 Java 项目,所以 .war 文件,即使对于小型应用程序,也往往很大。如果您有专用服务器,这不是问题,但尝试在具有 128 MB RAM 的共享主机上运行是行不通的。

2008 年是 Groovy 和 Grails 书籍之年,但仍有更多可用的 Rails 资源。

根据您的具体标准,Rails 可能是一个更好的学习框架。如果您有任何 Java 知识或包袱 ;-),您应该看看 Grails。

于 2008-09-17T12:35:36.640 回答
4

看到制作 Grails 的人昨天如何被 Spring source 收购,我会说 Grails。

此外,由于 Groovy 是 Java 的超集,您可以直接使用您所知道的 Java,而无需学习 Ruby。现在,您还将学习很多动态的东西,并最终编写 Groovy 代码而不是 Java 代码,但它降低了入门门槛。

一路圣杯!

于 2008-11-13T22:28:52.737 回答
4

我会选择 Grails,因为我喜欢它的方法(指定您的域类并让 Grails 生成其他所有内容)比 Rails 更好(构建数据库表并让 Rails 生成其他所有内容)。如果您是一名 Java 开发人员,您也会喜欢 Java 代码是有效的 Groovy 代码,而 Groovy 类是 Java 类,因此两种方式的集成都是无缝的。

于 2008-12-24T11:43:06.750 回答
3

作为一名来自 Java 的 Grails 开发人员,我从一开始就喜欢它。

现在,我开始深入研究 Rails 并遇到 gem 问题。虽然使用 Grails 设置 MySQL 连接非常简单,但我仍在努力使其与 Rails 一起使用。

该命令gem install mysql不起作用,显然是因为我没有安装 XCode。

如果不是因为它的内存消耗问题,我会说 Grails 是完美的。

于 2009-07-28T13:33:43.517 回答
2

我可以推荐Merb吗?它是基于机架的、模块化的、与 ORM 无关的,由 Ezra Zygmuntowicz 为提高速度而构建。现在开始有点热了...

于 2008-09-17T12:38:09.457 回答
1

Rails 更主流,但灵活性较差。Grails 仍在快速变化,没有相同的开发者生态系统,文档也没有那么成熟,但它可以在 Rails 不具备的某些情况下工作。

于 2008-09-17T10:30:15.613 回答
0

我已经使用了一点涡轮齿轮和导轨。在使用 rails 之前,我尝试使用 grails,因为我使用 groovy 编写脚本。Grails 是一段艰难的经历。

groovy 调用堆栈对于小程序来说很难阅读,但是当您添加几个重量级的框架时,一个简单的错误可能会产生 100 行。与 rails 不同,我使用的 grails 版本没有工具来帮助我确定什么是我的,什么属于框架。

我最终转而使用 Google Web 工具包,因为我真的不需要数据库。

我认为 Grails 和 Groovy 很有希望,但目前使用它们的用户体验很麻烦(目前是去年春天)。

于 2008-09-18T20:26:35.313 回答
0

我认为这在某种程度上取决于你工作的环境。

Grails 似乎有更多的企业级接受度。

Rails 具有 Koolaid 的风格,对于没有遗留系统的初创公司来说非常容易接受。

就个人而言,我正在使用两者。虽然在 Grails 世界中才刚刚开始——我喜欢 Grails 中的身份验证/授权更容易——一个简单的插件;四郎。我喜欢 Rails 不依赖于 JVM,并且不需要一分钟左右的时间来启动。

我发现在 Rails 中设置 BDD/Cucumber 要容易得多,但这可能只是因为我觉得这很舒服!在 Grails 世界(cuke4duke 等)中肯定有努力使这更容易 - 并且是一个开发 Grails 的活跃社区。

只是我的2p·

两个都试试:)

于 2010-12-15T11:47:16.197 回答