学习Ruby on Rails对Grails有什么好处?

学习Ruby on Rails对Grails有什么好处?

Learning Ruby on Rails any good for Grails?

我的公司正在开始Grails的发展。这样做的原因是,当前的开发人员沉迷于Java,但感到某些将来的Web开发项目需要MVC风格的语言。就个人而言,我来自设计/可用性领域,但是当我承担更多的"前端"职责时,我开始感到有必要更深入地学习语言,以便我可以编写一些逻辑代码,尤其是前端用户界面和内容的代码。

我一直在尝试亲自接触Python / Django,但是从来没有花太多时间在上面。现在,我的公司正在"跳入" Grails,我购买了"使用Rails进行敏捷Web开发(第3版-Beta)",然后开始涉足RoR。我仍然希望将来或从侧面学习Python,但是我最大的问题是:

  • 我是否应该学习RoR,并在我的"投资组合"中使用一种更通用的语言,同时知道我的RoR知识也将对我的Grails需求有用?

-要么-

  • 我是否应该跳过RoR并专注于学习我很快就要工作的Grails,而稍后再学习RoR / Django(Ruby / Python)?

基本上,问题围绕Grails在非公司环境中的有用性以及Rails和Grails之间的相似性。 (并且,与此同时,为了避免对Python与Ruby的百年讨论(在Rails上:))


嗯,我不知道怎么说。有人可能会为此而ash惜我。

语言(Groovy和Ruby)

作为一种语言,我认为Ruby与Groovy相比更时髦。 Groovy的存在只是为了减轻Java程序员的负担,因为您不需要学习太多的新语法。但是总的来说,我认为它不像Ruby那样时髦。在今年的JavaOne中,基于参加者的投票,Groovy不会成为值得学习的JVM语言,但Scala才是首选。除此之外,Groovy的原始创建者本人也不相信自己最初创建的语言。

社区和职位空缺

至于社区,Grails社区并不像Rails那样大,尽管自从Spring收购以来,越来越多的人正在认真地使用它。与Grails相比,Rails在市场上有更多的职位空缺(也就是说,如果您想投资寻找新工作)。

框架(Grails和Rails)

但是,作为一个框架,如果您真的关心可维护性并需要访问Java框架和旧版Java系统,那么Grails是可以采用的方法,因为它提供了对Java的更干净的访问。 Grails本身是基于几种流行的Java框架(Spring和Hibernate)构建的。 Rails本身的恕我直言像Ruby本身一样时髦,但是它的时髦使您失去了可维护性。 Matz自己更喜欢Merb而不是Rails 2,因为Rails在Ruby之上创建了DSL,这确实违反了Ruby的哲学。而且我认为,因为Rails本身是经过优化的,如果您与创建者的观点不同,那么这可能就不符合您的需求。

结论

因此,在您的情况下,请学习Grails,因为这是公司的共识(您需要尊重共识),并且如果您仍然想确保自己的工作。但是,如果您想在将来获得新工作的机会,也可以花一些时间学习Rails和Ruby。


只是一个问题,是他们选择Grails的原因是因为Groovy在语法上比Ruby更接近Java,或者是因为他们想要访问Java?

如果是前者,那么我想说的是专注于Grails,因为这就是您将要使用的。如果是后者,则可能要查看开发团队是否愿意使用JRuby。

我以前从未使用过Grails或Rails,但是我以前曾经使用过Groovy和Ruby,作为一种语言,我认为Ruby更简洁,更一致,并且团队可能会更喜欢生产。作为一个平台,Rails已经发布了更长的时间并且受到了很多关注,因此我可以想象它是一个使用更多充实功能的更稳定的平台。

JRuby拥有对用Java编写的类的完全访问权限,因此这就是为什么我要考虑尝试使用Rails的原因。如果在决定时间来不及考虑,那么我想您可以忽略此职位。

基本上,如果您只想使用Java,则应该考虑使用JRuby,但是如果团队害怕像Java这样的非Java语法,则可以照常继续。


我都会学的。它们都是新兴技术。学习RESTful编码是任何语言的真正好处。

我在工作中使用GRAILS,在辅助项目中使用RoR。我可以说RoR社区更大(我说的是RoR vs Grails,而不是RoR vs Java),并且非常有帮助。

简短的回答:它们是相似的...。


我一直在学习RoR和Grails,后者更容易学习。

两种框架都具有相同的原理(敏捷,亲吻,干枯,鸭子打字等。),但是Groovy语法非常好,您可以在眨眼之间学习和使用。

我真的觉得Grails的未来比RoR更光明。

PD:以防万一,如果您发现它有用,我的一所大学正在与Grails一起全职工作,并且有一个博客提供一些技巧:

http://dahernan.net/search/label/grails


只需跳过RoR。确实没有很多类似的东西(除了名字)

我当然相信,如果您打算使用Grails进行认真的开发,那么对Java足够熟悉,再加上对使用动态语言进行编程的丰富经验,就绰绰有余了。

仅比较视图(Grails中的标签库,RoR中的RHTML)和持久性内容(GORM与ActiveRecord)在核心方面太不同了,以至于花时间学习RoR的实质内容。只要深入Grails,您就不会后悔。

编辑:错字。


我更喜欢Grails,而不是Rails,但学习Rails可以使您拥有一个更加平衡的视角,并且实际上使您睁开了眼睛,忽略了Grails中可能发生的事情。


是的,Grails是必经之路。 RoR很好,但是它将您与Ruby生态系统联系在一起。学习新框架或语言的一部分工作是学习类库以及语言语法。如果您的同事都是Java类型,您将更容易获得帮助和支持,因为他们都将使用与您相同的语言。

学习一些Groovy和Java的另一个好处是,像GWT这样的Web框架将向您开放。 Grails有一个GWT插件,作为前端开发人员,您会喜欢它的易用性和跨浏览器的兼容性。

另外,至少有一家托管公司提供免费的Grails应用程序托管(http://www.mor.ph/),这意味着您可以在无需付费的情况下以小数据量构建网站原型。


直接跳入Grails。我确定Ruby / Rails很好,但是在Groovy / Grails中也是如此。我推荐这本书。

http://beginninggroovyandgrails.com

记住勘误表是在线的。书中有两个错误。

http://beginninggroovyandgrails.com/site/content/errata

另外,请查看3分钟30秒的演示,该演示创建了您的第一个Grails应用。

http://grails.org/Grails+Screencasts

本教程将向您展示基础知识。

http://grails.org/Quick+Start


在宣传RoR方面,Rails社区一直非常积极,其结果是树立了很高的期望并且并不总是能满足(程序员的生产力很好,但是一旦部署就很难保证良好的性能)。

Grails被设计为Java的脚本继承者,而JRuby on Rails中使用的Ruby-Java集成则必须进行改进。

我建议您坚持使用Grails。它可能没有与RoR相同的浮华,但这是一个务实的选择。您可以提高生产率并重用现有的Java库。


@李维菲盖拉

一方面,Grails比Rails灵活得多。 Rails很难与旧版数据库一起使用,因为ActiveRecord具有太多的设计约束,许多旧版DB并没有遵循这些约束。其他的Grails可以使用标准的Hibernate映射,该映射可以适应范围更广的DB设计。


您应该只跳过RoR,而专注于学习工作所需的Grails。


您可能还想看看Clojure,这是一种刚刚开始流行的JVM语言。 对于基于Java的公司来说,这可能是一个不错的选择,因为它与您的旧代码库兼容,并且拥有许多现代创新。 有一些不错的Web框架,包括Compojure。


是的,如果我们比较grails和rails,我会选择grails(我在grails中开发了一些Intranet应用程序)。

但是Django优于两者-因为python是完美的选择。


我会说不,我也正在学习Grails,我也已经考虑过这一点,但是仅仅学习Grails就是一件很重要的事情,再加上学习Groovy(这很容易,但仍然必须学习正确吗?)等等。 ...所以学习Rails实在太多了。


乍一看,您会认为它们是完全不同的故事,因为它们基于极其不同的语言(Ruby和Groovy)。

然后,在阅读了一些教程之后,您将意识到它们具有相同的原理,脚手架,鸭子打字,..以及最终的相同目标:
使敏捷编程变得可行。

如果您已经对IoC和MVC这样的术语感到满意,那么您会发现这些选项中的任何一个都简单易学。


推荐阅读