Rails 还是 Grails? [关闭]
Posted
技术标签:
【中文标题】Rails 还是 Grails? [关闭]【英文标题】:Rails or Grails? [closed] 【发布时间】:2010-09-10 01:22:21 【问题描述】:Grails 与 Rails。哪个支持更好?哪一个是开发中型应用程序的更好选择?最重要的是哪个插件多?
【问题讨论】:
【参考方案1】:还有一点值得一提:两个框架的设计理念在模型方面有些不同。 Grails 更“面向领域”,而 Rails 更“面向数据库”。 在 Rails 中,您基本上是从定义表开始(使用字段名称及其细节)。然后 ActiveRecord 会将它们映射到 Ruby 类或模型。 在 Grails 中,情况正好相反:您从定义模型(Groovy 类)开始,当您点击运行时,GORM(Grails ActiveRecord 等效项)将创建相关的数据库和表(或更新它们)。这也可能是您在 Grails 中没有“迁移”概念的原因(尽管我认为它会在未来的某个版本中出现)。 我不知道一个是否比另一个更好。我想这取决于你的上下文。
话虽如此,我仍然在想选择哪一个。正如 Tom 所说,如果您依赖 Java,您仍然可以选择 JRuby——因此 Java 重用不应该是您的唯一标准。
【讨论】:
至少有 2 个执行数据库迁移的 Grails 插件 我看不出这是如何获得这么多选票的......“域-”与“面向数据库”?我不认为它会进入前 100 个最重要的差异...... 如果您考虑 grails 和 rails,这是一个主要区别,因为当您查看 grails(迄今为止,java 世界中最好的 rails 概念副本)时,其余部分非常相似,我不知道看不出比面向领域与面向数据库更大的区别。【参考方案2】:我想如果您是一名 Java 开发人员并且想要访问所有现有的企业 Java 库和功能......请选择 Grails。
【讨论】:
你可以在 JRuby 中运行 Rails,所以我不认为这是一个强有力的论点。【参考方案3】:Rails 更成熟,拥有更多插件,拥有更大的用户群,提供更好的文档和支持。如果需要,它还可以在 JRuby 上运行,从而可以访问 Java 库。
Grails 有一些有趣的特性,但还不能声称与 Rails 一样。但是,如果您主要是 Java 或 groovy 开发人员,您可能更喜欢它。否则,我建议现在将 Rails 用于中型项目。
【讨论】:
比较成熟?语言?可能是。插件?大概。奥姆?不是由一个长镜头。 99% 的 Grails ORM 代码是 Hibernate,它本身的工程师年数可能比所有 Rails 代码加起来还要多。 IoC 引擎 (Spring) 也是如此,当然还有运行时 (JVM)。 从 tomafro 的回复到 @Tomislav 的评论有 4 年的时间。也许现在平衡发生了变化? 这里有几个数字(每个项目的工程师年,使用 COCOMO 模型估计):RoR:44、Spring 320、Hibernate 300、OpenJDK 1700。简而言之,RoR 才刚刚开始出现在线性范围内……顺便说一下,Grails:79。(来源:ohloh.net)简而言之,与 Grails 技术堆栈相比,目前 RoR 开发的强度微不足道。 COBOL:1500 万工程师年。改用 COBOL,这就是未来。 我无法判断 COBOL 是否合法,但请投我赞成票!【参考方案4】:我之所以说 grails,是因为那里有很多 Java 库。但是由于我来自java背景,所以我有点偏见。
如果应用程序不会很大,那么两者都足够了 - 选择应该取决于现有的基础设施。假设您已经运行了一个 java servlet 容器服务器,那么您最好还是坚持使用 grails,而不是为 rails 配置另一个服务器。
【讨论】:
【参考方案5】:我以前使用过 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,尽管 rubymine 取得了长足的进步(早期版本的 rubymine 曾经让我的 ubuntu 陷入停顿)。
归根结底,两者都是出色的 MVC 框架。 RoR 更加成熟,拥有更多的开发人员。 Grails 是 RoR 3-4 年前所处的位置,但我看到进展要快得多。希望这会有所帮助。
【讨论】:
【参考方案6】:这取决于您使用 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。
【讨论】:
【参考方案7】:看到制作 Grails 的人昨天如何被 Spring source 收购,我会说 Grails。
此外,由于 Groovy 是 Java 的超集,因此您可以直接使用自己熟悉的 Java,而无需学习 Ruby。现在,您还将学习很多动态的东西,最终编写 Groovy 代码而不是 Java 代码,但它降低了入门门槛。
一路走来!
【讨论】:
【参考方案8】:我会选择 Grails,因为我喜欢它的方法(指定您的域类并让 Grails 生成其他所有内容)比 Rails 更好(构建数据库表并让 Rails 生成其他所有内容)。如果您是 Java 开发人员,您也会喜欢 Java 代码是有效的 Groovy 代码,而 Groovy 类是 Java 类,因此两种方式的集成都是无缝的。
【讨论】:
【参考方案9】:作为一名来自 Java 的 Grails 开发人员,我从一开始就喜欢它。
现在,我开始深入研究 Rails 并遇到 gem 问题。虽然使用 Grails 设置 mysql 连接非常简单,但我仍在努力使其与 Rails 一起使用。
gem install mysql
命令不起作用,显然是因为我没有安装 XCode。
如果不是因为它的内存消耗问题,我会说 Grails 是完美的。
【讨论】:
【参考方案10】:我可以推荐Merb吗?它是基于机架的、模块化的、与 ORM 无关的,由 Ezra Zygmuntowicz 为提高速度而构建。现在开始有点热了……
【讨论】:
开箱即用的解决方案。我会看看 merb Merb 现在是 = Rails 3 rubyonrails.org/merb【参考方案11】:Rails 更为主流,但灵活性较差。 Grails 仍在快速变化,没有相同的开发者生态系统,文档也没有那么成熟,但它可以在 Rails 不支持的某些情况下工作。
【讨论】:
Grails 有很好的文档,对我来说参考指南非常好grails.org/doc/1.0.x 在我短暂的使用过程中,Grails 文档多次出现误导和/或错误。此外,截至大约 3 个月前,还没有好的当前书籍。 根据我的经验,我只在文档中发现了一个错误,我在 grails 项目中提出了一个 Jira 问题,并在 5 天内修复。关于书籍,Grails in Action 正在进行中blogs.bytecode.com.au/glen/2008/09/16/…。 说 Rails 在某种程度上“不够灵活”表明对 Ruby 生态系统缺乏了解。 让记录反映出这个答案在这一点上可能毫无意义 - 自从我写这篇文章以来,Grails 和 Rails 都在以光速发展。【参考方案12】:我用过一点涡轮齿轮和导轨。在使用 rails 之前,我尝试使用 grails,因为我使用 groovy 编写脚本。 Grails 是一段艰难的经历。
对于小程序来说,groovy 调用堆栈很难阅读,但是当您添加几个重量级的框架时,一个简单的错误可能会产生 100 行代码。与 rails 不同,我使用的 grails 版本没有工具来帮助我确定什么是我的,什么属于框架。
我最终转而使用 Google Web 工具包,因为我真的不需要数据库。
我认为 Grails 和 Groovy 很有希望,但目前使用它们的用户体验很麻烦(现在是去年春天)。
【讨论】:
【参考方案13】:我认为这在一定程度上取决于你工作的环境。
Grails 似乎有更多的企业级接受度。
Rails 具有 Koolaid 风格,非常适合没有遗留系统的初创企业。
就我个人而言,我正在使用两者。尽管在 Grails 世界中才刚刚开始——我喜欢 Grails 中的身份验证/授权更容易——一个简单的插件;四郎。我喜欢 Rails 不依赖于 JVM,并且不需要一分钟左右的时间来启动。
我发现在 Rails 中设置 BDD/Cucumber 要容易得多,但这可能只是因为我觉得这很舒服!在 Grails 世界(cuke4duke 等)中肯定有努力使这更容易 - 并且是一个开发 Grails 的活跃社区。p>
只是我的 2p·
两个都试试:)
【讨论】:
以上是关于Rails 还是 Grails? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章