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

我的公司正在开始使用 Grails 路径。原因在于目前的开发人员在 Java 上很沉重,但对于某些未来的Web开发项目,他们认为需要 MVC风格的语言。就我个人而言,我来自设计/可用性世界,但随着我承担更多“前端”责任,我开始感觉需要更深入地学习一门语言,以便我可以编写一些逻辑,特别是前端代码为我的用户界面和东西。

我一直试图进入 Python / Django ,但从来没有花太多时间在它上面。现在,我的公司正在“跳入”Grails,我购买了“使用Rails进行敏捷Web开发(第三版 - Beta版)”,我开始进入 RoR 。我仍然想在未来或侧面学习 Python ,但我最大的问题是:

  • 我是否应该学习RoR,并在我的“投资组合”中使用更通用的语言,知道我的RoR知识对我的Grails需求也很有用?

-要么-

  • 我应该跳过RoR并专注于学习即将工作需要的Grails,并在以后学习RoR / Django(Ruby / Python)吗?

基本上这个问题围绕着Grails在非公司环境中的用处以及Rails和Grails之间的相似之处。 (并且,尽量避免百年一遇的Python与Ruby(on Rails):))

0
好吧:已经有发展。我为我们的外部web应用程序开始了Rails路径,而另一个(Java)编码人员继续使用Grails作为Intranet的东西。我的观点是,未来,我们的应用程序的这两个方面将合并,Rails将带头。他使用Grails的主要原因是因为他是一名Java人,并且熟悉Hibernate。 :)到目前为止,我非常高兴放弃Grails的潮流并学习Rails。从长远来看,对我个人而言,对我们公司来说,这将更加有用。谢谢你的回答!爱这个社区! :d
额外 作者 Levi Figueira,
有人可以更新吗?我想确保人们至少可以获得关于此的最新观点。
额外 作者 David West,

13 答案

您应该跳过RoR并专注于学习您需要工作的Grails。

0
额外

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

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

我之前从未使用过Grails或Rails,但之前我曾使用过Groovy和Ruby,作为一种语言,我认为Ruby更清洁,更一致,团队可能更喜欢生产。作为一个平台,Rails已经更长时间了,并且受到了很多关注,所以我认为它是一个更稳定的平台,可以使用更多丰富的功能。

JRuby可以完全访问使用Java编写的类,所以这就是为什么我会考虑尝试使用Rails。如果在考虑它的决定时间太晚,那么我想你可以忽略这个帖子。

基本上,如果你只想使用Java,那么JRuby是你应该考虑的一个选项,但是如果团队害怕非Java语法,可能会继续保持原样。

0
额外

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

我当然相信,如果您计划使用Grails进行认真的开发,对Java的熟悉程度以及使用动态语言进行编程的经验绰绰有余。

只比较视图(Grails中的taglibs,RoR中的RHTML)和持久化内容(GORM vs ActiveRecord)在内核上的差异太大了,以便投入时间学习RoR的基本细节。只要深入Grails,你就不会后悔。

编辑:纠正错字。

0
额外

我会同时学习。他们都是即将到来的技术。学习RESTful编码在任何语言中都是真正的优势。

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

简答:他们是相似的......有什么可能伤害?

0
额外

嗯,我不知道该怎么说。有些人可能会对此置之不理。

语言(Groovy和Ruby)

作为一种语言,我认为Ruby比Groovy更时髦。 Groovy只存在于简化Java程序员,因为您不需要学习太多的新语法。但总的来说,我认为并不像Ruby那么时髦。在今年的JavaOne中,Groovy不会成为基于参与者投票的值得学习的JVM语言,而是Scala是一个值得去学习的人。除此之外,Groovy的原始创建者不会首先对他自己创建的语言有信心。

社区和工作机会

至于社区,Grails社区并不像Rails那么大,尽管Spring收购越来越多的人正在使用它进行严肃的应用。与Grails相比,Rails在市场上拥有更多的职位空缺(即如果您想投资寻找新职位)。

框架(Grails和Rails)

But, as a framework, if you really care about maintainability and need access to Java framework and legacy Java system, Grails is the way to go as it provides cleaner access to Java. Grails itself is built upon several popular Java framework (Spring & Hibernate). Rails itself IMHO is funky like

ruby itself, but it's funkyness costs you maintainability. Matz himself prefers Merb over Rails 2 because Rails create a DSL on top of ruby which is really against the ruby philosophy. And I reckon because Rails itself is opiniated, which in turn if you don't have the same opinion as the creator, it might not fit your needs.

结论</强>

因此,就您的情况而言,了解Grails是公司的共识(您需要尊重共识),以及您是否仍想保住自己的工作。但是,如果你想在未来开创一个新的工作机会,那么投入一些时间学习Rails和Ruby。

0
额外
好点!我一直密切关注Scala,并可能在未来使用它。现在,Rails已经很多了! :)另外,整个Groovy / Grails概念从来没有让我感到长期。我不知道Groovy创建者的评论,但他们来证明我最初的想法。 Grails不是一致同意的。当他面对我们的新事物不可避免的时候,这是我们的Java人的“出路”:Rails! :)到目前为止,我很喜欢Ruby / Rails,不能等待3.0!学习了Rails的方法,现在慢慢学习更高级的Ruby!非常满意我/我们走过的路。 ;)
额外 作者 Levi Figueira,
使用创造者自己对其失去信心的技术是非常可怕的。
额外 作者 Joshua Partogi,
很好的答案!你有没有比较插件社区(Gems vs Plugins)? Rails似乎是这个领域的赢家。
额外 作者 Alexander Suraphel,

@Levi Figueira

首先,Grails比Rails更加灵活。由于ActiveRecord的设计约束太多,许多遗留数据库没有遵循,所以Rails很难与传统数据库一起使用。 Grails可以使用标准的Hibernate映射,这可以适应更广泛的数据库设计。

0
额外

我喜欢Grails over Rails,但学习Rails会给你一个更加平衡的视角,并且实际上睁开你的眼睛忽略了Grails中可能的事情。

0
额外

我会说不,我也在学习Grails,我也考虑过这一点,但只是学习Grails非常大,加上学习Groovy(授予很容易,但仍然需要学习它?)以及所有这些...所以学习Rails本来就太过分了。

0
额外

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

这两个框架共享相同的原则(敏捷,吻,干,鸭子打字等等),但Groovy语法是......好极了,你可以在一眨眼的时候学习和使用。

我确实认为Grails比RoR拥有更光明的未来。

PD:为了万一您觉得它有用,我的一所大学正在全职与Grails合作,并且在博客上提供了一些提示:

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

0
额外

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

然后,在阅读了一些教程之后,您会意识到它们有着相同的原则,脚手架,鸭子打字......并最终实现了相同的目标:    使敏捷编程可行

如果您已经习惯了像IoC和MVC这样的术语,那么您会发现任何这些选项都很容易且令人兴奋。

0
额外

Rails社区一直非常热衷于RoR的传播,结果是高期望已经被设定并且并不总是被满足(程序员的生产力是好的,但是确保部署后的良好性能并不是那么容易)。

Grails已被设计为Java的脚本化后继者,而JRuby on Rails中使用的Ruby-Java集成则不得不进行改进。

我建议你坚持使用Grails;它可能不像RoR那样具有相同的浮华,但它是一种实用的选择;您可以提高生产力并重新使用现有的Java库。

0
额外

是的,Grails是要走的路。 RoR很好,但它将您与Ruby生态系统联系在一起。学习新框架或语言的部分工作是学习类库和语言语法。如果你的同事都是Java类型的人,你将能够更好地接受帮助和支持,因为他们都会和你说同一种语言。

学习一点Groovy和Java的另一个好处是像GWT这样的Web框架将向您敞开大门。 Grails有一个GWT插件,作为一名前端开发人员,您将会体会到易用性和跨浏览器兼容性。

另外还有至少一家托管公司提供免费的Grails应用程序托管( http://www.mor.ph/),这意味着您可以在支付之前以小数据量对网站进行原型设计。

0
额外

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

0
额外