学习 Ruby on Rails 对 Grails 有好处吗?
Posted
技术标签:
【中文标题】学习 Ruby on Rails 对 Grails 有好处吗?【英文标题】:Learning Ruby on Rails any good for Grails? 【发布时间】:2010-09-05 12:39:12 【问题描述】:我的公司正在踏上Grails之路。其原因是当前的开发人员对 Java 非常重视,但他们认为未来的一些 Web 开发项目需要一种 MVC 风格的语言。就个人而言,我来自设计/可用性领域,但随着我承担更多“前端”职责,我开始觉得有必要更深入地学习一门语言,这样我就可以编写一些逻辑,尤其是前端我的 UI 和东西的代码。
我一直在尝试亲自接触 Python/Django,但从来没有在上面投入太多时间。现在我的公司正在“跳入”Grails,我购买了“Agile Web Development with Rails(第 3 版 - Beta)”并开始涉足 RoR。我还是想在未来或边上学Python,但我最大的问题是:
我是否应该学习 RoR,并在我的“投资组合”中使用更通用的语言,知道我的 RoR 知识也将有助于满足我的 Grails 需求??-或-
我是否应该跳过 RoR 并专注于学习我很快就会需要工作的 Grails,然后继续学习 RoR/Django (Ruby/Python)?基本上,问题围绕着 Grails 在非企业环境中的实用性以及 Rails 和 Grails 之间的相似之处。 (还有这个,同时试图避免 Python 与 Ruby(在 Rails 上)的百年讨论:))
【问题讨论】:
好的:有发展了。我开始为我们的外部 web 应用程序使用 Rails 路径,而其他 (Java) 编码器继续使用 Grails 来处理 Intranet 的东西。我的观点是,在未来,我们的应用程序的这两个方面将合并,Rails 将处于领先地位。他使用 Grails 的主要原因是因为他是 Java 并且熟悉 Hibernate。 :) 到目前为止,我很高兴放弃 Grails 的潮流并提前学习 Rails。从长远来看,这对我个人和我们公司都会更有用。感谢您到目前为止的回答!爱这个社区! :D 有人可以更新这个吗?我想确保人们至少能获得对此的最新意见。 【参考方案1】:您应该跳过 RoR 并专注于学习您在工作中需要的 Grails。
【讨论】:
【参考方案2】:跳过 RoR。类似的东西真的不多(除了名字)
我当然相信,如果您打算使用 Grails 进行认真的开发,那么对 Java 足够熟悉,再加上一些使用动态语言编程的经验就绰绰有余了。
仅比较视图(Grails 中的标记库,RoR 中的 Rhtml)和持久性的东西(GORM 与 ActiveRecord)在核心方面差别太大,花时间学习 RoR 的基本细节。深入了解 Grails,您不会后悔的。
编辑:纠正错字。
【讨论】:
【参考方案3】:问个问题,他们选择 Grails 的原因是因为 Groovy 在语法上比 Ruby 更接近 Java,还是因为他们想要访问 Java?
如果是前者,那么我会说尝试专注于 Grails,因为您将使用 Grails。如果是后者,你可能想看看开发团队是否愿意使用 JRuby。
我以前从未使用过 Grails 或 Rails,但我以前使用过 Groovy 和 Ruby,作为一门语言,我认为 Ruby 更干净、更一致,团队可能更喜欢生产。作为一个平台,Rails 推出的时间更长,也受到了很多关注,所以我认为它是一个更稳定的平台,可以使用更丰富的功能。
JRuby 可以完全访问用 Java 编写的类,所以这就是为什么我会说考虑尝试 Rails。如果在决定时间考虑它为时已晚,那么我想你可以忽略这篇文章。
基本上,如果您只是想与 Java 挂钩,那么 JRuby 是您应该考虑的一个选项,但如果团队害怕非 Java 类语法,则可以继续使用。
【讨论】:
【参考方案4】:我一直在学习 RoR 和 Grails,后者更容易学习。
两个框架共享相同的原则(敏捷、亲吻、干式、鸭式打字等),但 Groovy 语法......非常棒,您可以在眨眼之间学习和使用。
我真的觉得 Grails 的未来比 RoR 更光明。
PD:以防万一你觉得它有用,我的一所大学正在与 Grails 全职合作,并且有一个包含一些提示的博客:
http://dahernan.net/search/label/grails
【讨论】:
【参考方案5】:乍一看,您会认为它们是完全不同的故事,因为它们基于极其不同的语言(Ruby 和 Groovy)。
然后,在阅读了几个教程之后,您会发现它们共享相同的原则、脚手架、鸭子类型,......最后是相同的目标: 使敏捷编程变得可行。
如果您已经对 IoC 和 MVC 等术语感到满意,您会发现这些选项中的任何一个都很容易学习且令人兴奋。
【讨论】:
【参考方案6】:我会两个都学。它们都是新兴技术。学习 RESTful 编码对任何语言都有真正的好处。
我在工作中使用 GRAILS,在业余项目中使用 RoR。我可以说 RoR 社区要大得多(我说的是 RoR vs Grails,而不是 RoR vs Java)并且非常有帮助。
简短回答:它们很相似.... 会有什么伤害?
【讨论】:
【参考方案7】:@Levi Figueira
一方面,Grails 比 Rails 灵活得多。 Rails 很难与遗留数据库一起使用,因为 ActiveRecord 有太多的设计约束,许多遗留数据库没有遵循。 Grails 等可以使用标准的 Hibernate 映射,这可以适应更广泛的数据库设计。
【讨论】:
【参考方案8】:Rails 社区一直在大力宣传 RoR,结果是人们设定了很高的期望,但并不总是能得到满足(程序员的生产力很好,但一旦部署就确保良好的性能并不那么容易)。
Grails 被设计为 Java 的脚本继承者,而 JRuby on Rails 中使用的 Ruby-Java 集成则必须进行改造。
我建议你坚持使用 Grails;它可能没有 RoR 那样的浮华,但它是一个务实的选择;您可以提高工作效率并重用现有的 Java 库。
【讨论】:
【参考方案9】:直接跳入 Grails。我确信 Ruby/Rails 很好,但在 Groovy/Grails 中也是如此。我推荐这本书。
http://beginninggroovyandgrails.com
记住勘误表是在线的。书中有几个错误。
http://beginninggroovyandgrails.com/site/content/errata
另外,请查看创建您的第一个 Grails 应用程序的 3 分 30 秒演示。
http://grails.org/Grails+Screencasts
本教程将向您展示基础知识。
http://grails.org/Quick+Start
【讨论】:
【参考方案10】:是的,Grails 就是要走的路。 RoR 很好,但它将您与 Ruby 生态系统联系在一起。学习新框架或语言的部分工作是学习类库和语言语法。如果您的同事都是 Java 类型,那么您将更容易获得帮助和支持,因为他们都和您说同一种语言。
学习一点 Groovy 和 Java 的另一个好处是 GWT 等 Web 框架将向您开放。 Grails 有一个 GWT 插件,作为前端开发人员,您会喜欢它的易用性和跨浏览器兼容性。
此外,至少有一家托管公司提供免费的 Grails 应用程序托管 (http://www.mor.ph/),这意味着您无需付费即可以少量数据制作网站原型。
【讨论】:
【参考方案11】:我更喜欢 Grails 而不是 Rails,但是学习 Rails 会给你一个更平衡的视角,实际上让你睁开眼睛去发现 Grails 中可能被忽视的东西。
【讨论】:
【参考方案12】:我会说不,我也在学习 Grails,我也考虑过这一点,但是仅仅学习 Grails 是相当大的,再加上学习 Groovy(这很容易,但还是要学习吧?)等等……所以学习 Rails 实在是太过分了。
【讨论】:
【参考方案13】:是的,如果我们比较 grails 和 rails,我会选择 grails(我在 grails 中开发了一些 Intranet 应用程序)。
但 Django 优于两者——因为 python 是一个完美的选择。
【讨论】:
【参考方案14】:嗯,我不知道该怎么说。有些人可能会因此而抨击我。
语言(Groovy 和 Ruby)
作为一种语言,我认为 Ruby 与 Groovy 相比更时髦。 Groovy 的存在只是为了简化 Java 程序员,因为您不需要学习太多新语法。但总的来说,我认为它不像 Ruby 那样时髦。根据今年 JavaOne 与会者的投票,Groovy 不是值得学习的 JVM 语言,而是 Scala 是值得学习的语言。除此之外,首先是the original creator of Groovy himself does not have faith in the language he created himself。
社区和职位空缺
在社区方面,Grails 社区没有 Rails 大,但自从被 Spring 收购以来,越来越多的人在认真的应用中使用它。与 Grails 相比,Rails 在市场上有更多的职位空缺(也就是说,如果您想投资寻找新工作)。
框架(Grails 和 Rails)
但是,作为一个框架,如果您真的关心可维护性并需要访问 Java 框架和遗留 Java 系统,那么 Grails 是您的最佳选择,因为它提供了对 Java 的更清晰的访问。 Grails 本身建立在几个流行的 Java 框架(Spring 和 Hibernate)之上。恕我直言,Rails 本身就像 Ruby 本身一样时髦,但它的时髦会降低您的可维护性。 Matz himself prefers Merb over Rails 2 因为 Rails 在 Ruby 之上创建了一个 DSL,这确实违反了 Ruby 哲学。而且我认为是因为 Rails 本身是有意见的,反过来,如果您与创建者的意见不同,它可能不适合您的需求。
结论
所以在你的情况下,学习 Grails,因为这是公司的共识(你需要尊重共识),如果你仍然想确保你的工作。但是,如果您想在未来找到一份新工作的机会,也请花一些时间学习 Rails 和 Ruby。
【讨论】:
好点!我一直在关注 Scala,将来可能会使用它。目前,Rails 已经足够了! :) 另外,整个 Groovy/Grails 概念从来没有让我印象深刻。我不知道 Groovy 创建者的那些 cmets,但它们来证明我最初的想法。 Grails 不是自愿的。当我们的 Java 人员面对我们的新东西不可避免的问题时,这是一条“出路”:Rails! :) 到目前为止,我喜欢 Ruby/Rails 并且等不及 3.0 了!学习了 Rails,现在,慢慢地,学习更高级的 Ruby!对我/我们所走的道路非常满意。 ;) 使用创作者本人对它失去信心的技术是相当可怕的。 很好的答案!您是否比较过插件社区(Gems vs Plugins)? Rails 似乎是这方面的赢家..【参考方案15】:您可能还想看看Clojure,这是一种刚刚开始流行的 JVM 语言。对于基于 Java 的公司来说,它可能是一个不错的选择,因为它与您的旧代码库兼容,并且有很多现代创新可供选择。出现了一些不错的 Web 框架,包括 Compojure。
【讨论】:
以上是关于学习 Ruby on Rails 对 Grails 有好处吗?的主要内容,如果未能解决你的问题,请参考以下文章