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

时间:2008-08-07 18:17:22

标签: ruby-on-rails ruby grails groovy

我的公司正在开始 Grails 路径。原因是当前开发人员对 Java 非常重视,但对于未来的某些Web开发项目感到需要 MVC风格的语言。就个人而言,我来自设计/可用性世界,但随着我承担更多“前端”职责,我开始觉得需要更加集中地学习语言,所以我可以编写一些逻辑但特别是前端我的用户界面和内容的代码。

我一直试图亲自进入 Python / Django ,但从来没有投入太多时间。现在我的公司“跳进”Grails我买了“敏捷Web开发与Rails(第3版 - Beta)”,我开始进入 RoR 。我仍然希望将来或侧面学习 Python ,但我最大的问题是:

  • 我是否应该学习RoR,并且在我的“作品集”中使用更通用的语言,知道我的RoR知识对我的Grails需求也有用吗?

-OR -

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

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

15 个答案:

答案 0 :(得分:17)

嗯,我不知道该怎么说。有些人可能会抨击我。

语言(Groovy和Ruby)

作为一种语言,我认为与Groovy相比,Ruby更加时髦。 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。

答案 1 :(得分:8)

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

如果是前者,那么我会说尝试专注于Grails,因为这就是你将要使用的。如果是后者,您可能希望了解开发团队是否愿意使用JRuby。

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

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

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

答案 2 :(得分:4)

我会学到两者。它们都是即将到来的技术。学习RESTful编码是任何语言的真正好处。

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

简答:他们很相似......它会受到什么伤害?

答案 3 :(得分:3)

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

这两个框架都有相同的原则(敏捷,亲吻,干燥,鸭子打字等等)但是Groovy的语法是......很好,你可以在眨眼之间学习和使用。

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

PD:为了防止你发现它有用,我的一个大学正在与Grails全职工作,并有一个博客提供一些提示:

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

答案 4 :(得分:2)

跳过RoR。实际上并没有很多相似的东西(名称除外)

我当然相信,如果你打算用Grails进行认真的开发,那么熟悉Java,加上一些使用动态语言编程的经验就足够了。

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

编辑:更正错字。

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:1)

Rails社区在宣传RoR方面非常直言不讳,结果是设定了很高的期望而且并不总能满足(程序员的生产力很好,但是一旦部署就确保良好的性能并不那么容易)。

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

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

答案 7 :(得分:1)

@Levi Figueira

首先,Grails比Rails更灵活。 Rails很难与传统数据库一起使用,因为ActiveRecord具有太多设计约束,许多传统数据库没有遵循这些限制。 Grails,可以使用标准的Hibernate映射,它可以适应更广泛的数据库设计。

答案 8 :(得分:1)

直接跳入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

答案 9 :(得分:1)

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

答案 10 :(得分:1)

我赞成Grails over Rails,但学习Rails会给你一个更平衡的视角,实际上睁开你的眼睛,忽视Grails中可能存在的事情。

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

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

然后,在阅读了几个教程之后,你会发现他们有相同的原则,脚手架,鸭子打字,......最后是同一个目标:    使敏捷编程变得可行

如果你已经对IoC和MVC等术语感到满意,你会发现这些选项中的任何一个都很容易且令人兴奋。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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