21

我的公司正在开始走Grails之路。原因是当前的开发人员对Java很感兴趣,但他们觉得未来一些 Web 开发项目需要一种MVC 风格的语言。就个人而言,我来自设计/可用性领域,但随着我承担更多“前端”职责,我开始觉得有必要更深入地学习一门语言,这样我就可以编写一些逻辑,尤其是前端我的 UI 和东西的代码。

我一直试图亲自进入Python/Django,但从来没有在它上面投入太多时间。现在我的公司正在“跳入”Grails,我购买了“ Agile Web Development with Rails (3rd Ed - Beta) ”,我开始进入RoR。我仍然想在未来或边上学习Python ,但我最大的问题是:

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

-或者-

  • 我是否应该跳过 RoR 并专注于学习我很快需要工作的 Grails,然后继续学习 RoR/Django(Ruby/Python)?

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

4

15 回答 15

16

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

语言(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 本身是有意见的,反过来,如果您与创建者的意见不同,它可能不适合您的需求。

结论

So in your case, learn Grails as that is the company's consensus (you need to respect the consensus) and if you still want to secure your job. But, invest some time learning Rails and Ruby too if you want to open a chance getting a new job in the future.

于 2009-07-21T10:52:45.673 回答
9

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

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

我以前从未使用过 Grails 或 Rails,但我以前使用过 Groovy 和 Ruby,作为一门语言,我认为 Ruby 更干净、更一致,团队可能更喜欢生产。作为一个平台,Rails 出现的时间更长,也受到了很多关注,所以我认为它是一个更稳定的平台,可以使用更多充实的功能。

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

基本上,如果您只是想与 Java 挂钩,那么 JRuby 是您应该考虑的一个选项,但如果团队害怕非 Java 类的语法,也许可以继续原样。

于 2008-08-07T18:44:42.363 回答
4

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

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

简短的回答:它们是相似的......它会伤害什么?

于 2008-09-02T03:35:05.817 回答
3

跳过 RoR。类似的东西真的不多(除了名字)

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

仅比较视图(Grails 中的 taglibs,RoR 中的 RHTML)和持久性内容(GORM 与 ActiveRecord)在核心方面差别太大,需要花时间学习 RoR 的基本细节。只需深入 Grails,您将不会后悔。

编辑:纠正错字。

于 2008-08-07T18:38:13.780 回答
3

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

这两个框架共享相同的原则(敏捷、亲吻、干式、鸭式打字等等),但 Groovy 语法……嗯,简直太棒了,你可以在眨眼间学习和使用。

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

PD:以防万一你觉得它有用,我的一所大学正在与 Grails 全职合作,并且有一个包含一些提示的博客:

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

于 2008-08-20T16:36:21.630 回答
1

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

于 2008-08-07T18:20:37.187 回答
1

@Levi Figueira

一方面,Grails 比 Rails 灵活得多。Rails 很难与遗留数据库一起使用,因为 ActiveRecord 有太多的设计约束,许多遗留数据库没有遵循。Grails 等可以使用标准的 Hibernate 映射,它可以适应更广泛的数据库设计。

于 2008-09-02T19:20:22.050 回答
1

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

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

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

于 2008-09-06T19:21:38.940 回答
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

于 2008-09-08T03:05:24.057 回答
1

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

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

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

于 2008-09-18T04:57:22.333 回答
1

我更喜欢 Grails 而不是 Rails,但是学习 Rails 会给你一个更平衡的视角,实际上让你睁开眼睛去发现 Grails 中可能被忽视的东西。

于 2008-09-18T20:44:18.093 回答
0

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

然后,在阅读了几篇教程之后,您会发现它们共享相同的原则、脚手架、鸭式打字……以及最终相同的目标: 使敏捷编程变得可行

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

于 2008-08-21T09:30:32.130 回答
0

我会说不,我也在学习 Grails,我也考虑过这一点,但是仅仅学习 Grails 是相当大的,再加上学习 Groovy(这很容易,但仍然必须学习它对吗?)等等...所以学习 Rails 实在是太过分了。

于 2008-11-13T22:34:09.950 回答
0

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

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

于 2009-07-16T09:27:30.830 回答
0

You might also want to take a look at Clojure, a JVM language that's just starting to get popular. It may be a good choice for a Java-based company since it's compatible with your old codebase, and has a lot of modern innovations going for it. There are some good web frameworks emerging, including Compojure.

于 2010-09-28T04:09:08.137 回答