我的公司正在开始 Grails 路径。原因是当前开发人员对 Java 非常重视,但对于未来的某些Web开发项目感到需要 MVC风格的语言。就个人而言,我来自设计/可用性世界,但随着我承担更多“前端”职责,我开始觉得需要更加集中地学习语言,所以我可以编写一些逻辑但特别是前端我的用户界面和内容的代码。
我一直试图亲自进入 Python / Django ,但从来没有投入太多时间。现在我的公司“跳进”Grails我买了“敏捷Web开发与Rails(第3版 - Beta)”,我开始进入 RoR 。我仍然希望将来或侧面学习 Python ,但我最大的问题是:
-OR -
基本上,问题围绕着Grails在非公司环境中的有用性以及Rails和Grails之间的相似性。 (而且,在尝试避免Python与Ruby(在Rails上)的百年讨论时:))
答案 0 :(得分:17)
作为一种语言,我认为与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在市场上有更多的职位空缺(即如果你想投资寻找新工作)。
但是,作为一个框架,如果您真的关心可维护性并需要访问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全职工作,并有一个博客提供一些提示:答案 4 :(得分:2)
跳过RoR。实际上并没有很多相似的东西(名称除外)
我当然相信,如果你打算用Grails进行认真的开发,那么熟悉Java,加上一些使用动态语言编程的经验就足够了。
只比较视图(Grails中的taglibs,RoR中的RHTML)和持久性内容(GORM vs ActiveRecord)在核心中的差异太大,以便花时间学习RoR的细节。只要潜入Grails,你就不会后悔。
编辑:更正错字。
答案 5 :(得分:1)
你应该跳过RoR并专注于学习你需要工作的Grails。
答案 6 :(得分:1)
@Levi Figueira
首先,Grails比Rails更灵活。 Rails很难与传统数据库一起使用,因为ActiveRecord具有太多设计约束,许多传统数据库没有遵循这些限制。 Grails,可以使用标准的Hibernate映射,它可以适应更广泛的数据库设计。
答案 7 :(得分:1)
Rails社区在宣传RoR方面非常直言不讳,结果是设定了很高的期望而且并不总能满足(程序员的生产力很好,但是一旦部署就确保良好的性能并不那么容易)。
Grails被设计为Java的脚本继承者,而JRuby on Rails中使用的Ruby-Java集成则必须进行改进。
我建议你坚持使用Grails;它可能没有RoR那样的浮华,但它是一个务实的选择;您可以提高生产力并重用现有的Java库。
答案 8 :(得分:1)
直接跳入Grails。我确信Ruby / Rails是好的,但在Groovy / Grails中也是如此。我推荐这本书。
http://beginninggroovyandgrails.com
请记住勘误表在线。书中有几个错误。
http://beginninggroovyandgrails.com/site/content/errata
另外,请查看创建第一个Grails应用程序的3分30秒演示。
http://grails.org/Grails+Screencasts
本教程将向您展示基础知识。
答案 9 :(得分:1)
是Grails是要走的路。 RoR很好,但它将您与Ruby生态系统联系在一起。学习新框架或语言的部分工作是学习类库以及语言语法。如果您的同事都是Java类型,那么您将更好地获得帮助和支持,因为他们将使用与您相同的语言。
学习一点Groovy和Java的另一个好处是像GWT这样的Web框架将向您敞开心扉。 Grails有一个GWT插件,作为前端开发人员,您将欣赏易用性和跨浏览器兼容性。
此外,至少有一家托管公司提供免费的Grails应用程序托管(http://www.mor.ph/),这意味着您可以在需要付费之前以小数据量对站点进行原型设计。
答案 10 :(得分:1)
我赞成Grails over Rails,但学习Rails会给你一个更平衡的视角,实际上睁开你的眼睛,忽视Grails中可能存在的事情。
答案 11 :(得分:0)
乍一看,您会认为它们是完全不同的故事,因为它们基于非常不同的语言(Ruby和Groovy)。
然后,在阅读了几个教程之后,你会发现他们有相同的原则,脚手架,鸭子打字,......最后是同一个目标: 使敏捷编程变得可行。
如果你已经对IoC和MVC等术语感到满意,你会发现这些选项中的任何一个都很容易且令人兴奋。
答案 12 :(得分:0)
我会说不,我也在学习Grails,我也考虑过这一点,但只是学习Grails非常大,加上学习Groovy(授予很容易,但仍然需要学习它吗?)所有这些...所以学习Rails本来就太多了。
答案 13 :(得分:0)
是的,如果我们比较grails和rails我会选择grails(我用grails开发了一些内部网应用程序)。
但Django优于两者 - 因为python是一个完美的选择。
答案 14 :(得分:0)