代码之家  ›  专栏  ›  技术社区  ›  Piotr Kochański

Grails和Roo——为什么SpringSource推出两种非常相似的技术?

  •  74
  • Piotr Kochański  · 技术社区  · 15 年前

    SpringSource(现在是VMware)有两种非常相似的技术:Grails和SpringRoo。我一直在使用Grails,但是我看到SpringSource正在积极地开发一种技术的竞争对手,这让我担心Grails的未来。

    有没有人知道这些技术是如何联系起来的,它们是要被合并,还是其中一个将被放弃?

    除此之外,木纹和木纹之间有什么重要的技术差异吗?

    8 回复  |  直到 12 年前
        1
  •  88
  •   Ben Alex    15 年前

    SpringSource 其目标是让人们尽可能快速、轻松地构建、运行和管理基于Spring的解决方案。我们都有 Grails Spring Roo 因为我们非常关心开发人员的工作效率,毫无疑问,这两个工具都为团队在Spring上能够实现的目标提供了一个重要的推动。

    我们拥有这两种技术,因为Roo和Grails在哲学和实现层面上是非常不同的(如其他回复中所述)。每种技术都使用它的主要语言(Java或Groovy)和操作模型(DeV Times或Runtime),其理念是“我们如何使价值命题难以置信地好地使用这种语言和操作模型组合?”这样,您将看到每种技术采用不同的样式,最大化了组合(Roo的Java+DeV时间或GraveGroovy+Runtime)和相称的好处。

    这些差异实际上是非常积极的,因为它们意味着春季社区可以选择他们喜欢的生产力解决方案的“味道”。虽然在语言选择和运行时/开发时操作方面的这些初始差异是显而易见的,但Grails或Roo的选择也扩展到了更微妙的考虑因素,如使用的默认技术、用户交互模型、IDE支持、依赖项、标准、路线图、扩展等。几乎所有这些差异都是为特定语言风格寻求最佳解决方案的自然结果。

    我们的最佳建议是考虑这两种解决方案。每个人都有自己的优势,但两者之间存在差异,这将使您在给定的环境中更好地使用一种或另一种技术。两个参考指南详细介绍了 respective benefits 属于 each solution .当然,记住,在尝试两者时,时间投资是最小的。在10分钟内,你可以在Roo或Grails中构建一个项目,所以让他们尝试一下,看看在特定的背景和项目需求下,什么对你来说更自然。

        2
  •  22
  •   leebutts    13 年前

    主要区别在于Roo是纯Java框架,而GRAIUS利用Groovy和Java。两者都建立在核心Spring库上,并使用流行的Java开放源代码库。

    这个问题是在宣布Roo时被问到的,GraemeRocher(GrailsLead)说这两个框架在Spring中都有一个位置,并且得到了同等的支持。

    如果有什么的话,我认为格雷尔斯的未来比鲁奥更光明。我喜欢用它开发,并且不认为它有什么缺点,而不是纯粹的Java。

        3
  •  19
  •   Jared    15 年前

    圣杯和圣杯是非常不同的。第一个主要区别是使用的语言。虽然可以像传统Java代码一样编写Groovy代码,但仍然需要Groovy依赖项来运行GRAILS应用程序。为了在GRAIUS中尽可能高效,您还需要掌握Groovy中目前不属于Java的一些特性,如闭包。另一个区别是框架在生成代码时采用的哲学。Grails在运行时生成很多方法,而Roo在开发过程中根据请求生成它们。对于面向方面编程的使用,Roo没有幕后的魔力,您可以查看Roo生成的所有代码。例如,在roo中,必须使用命令让它生成动态查找工具方法,如findbybook(),然后在.aj文件中查看生成的代码。在Grails中,findbybook()方法是在运行时创建的,您可以查看生成的代码。ROO还允许您停止使用框架,如果您选择继续运行一个运行的应用程序,通过将所有生成的代码合并到正常的.java文件中。然后,在运行时或设计时都不依赖于任何Roo库。如果您决定不喜欢Grails,那么在继续使用功能正常的应用程序的同时,无法停止使用该框架。

        4
  •  9
  •   Heinrich Filter    15 年前

    在我看来,这两者并不十分相似。尽管存在相似之处,但以下内容存在显著差异:

    • ROO使用“股票标准Java”, Grails基于groovy
    • Grails是一个Web框架,Roo不是

    Roo非常类似于Grails的命令行系统(例如 create-app , create-domain-class , test-app 在grails中找到类型命令)。我不会惊讶地看到在这个部分的圣杯框架和Roo之间有一些“异花授粉”。

        5
  •  4
  •   Csaba_H    15 年前

    来自SpringSource的Ben Alex谈到了Roo In this interview 有人问他关于格雷尔斯和鲁奥的事。除了使用不同的语言(Groovy与Java等其他提到的)之外,主要的区别是Roo主要是开发时间工具,GRARES更多地参与运行时。

        6
  •  1
  •   Kimble    15 年前

    它们其实并不那么相似。Roo在编译时有魔力,Grails在运行时有魔力。因此,Roo项目在运行时不会受到任何性能影响。

    我看不出它们是如何合并的,因为GRAILS是基于Java上的Groovy和Roo构建的。

        7
  •  1
  •   Fletch    15 年前

    我看到了一些关于Grails邮件列表的评论,这表明作者认为Roo的存在只是Grails的垫脚石!然而,我个人正在考虑从Grails到Roo的可能转换。我认为主要的区别是动态和静态类型语言——对我来说这是巨大的。我喜欢Grails的许多特性,但我更喜欢静态类型语言的IDE支持和编译时检查。有些人感觉正好相反,因此马是用来跑的。也就是说,静态groovy目前正处于繁重的开发阶段,所以谁知道未来会发生什么。

        8
  •  0
  •   Krishna    12 年前

    我们有一个在生产中有应用的需求,在SpringMVC中开发,开发新特性的速度很慢。我们必须探索其他框架,比如Grails和Roo。我个人花了将近一个月的时间探索哪一个更好。

    如果您想查看分析的详细信息,请访问@ http://krishnasblog.com/2012/05/08/roo-vs-grails/

    我们研究了以下两个方面的特征,下面是我们的发现。最后的结论我们不确定是否会使用其中任何一个,我们仍在探索