首页 文章

Groovy优于Jython或Jruby?

提问于
浏览
34

当我可以使用Jython或Jruby时,为什么我会选择使用Groovy?该语言是否提供了任何固有的优势来弥补Jython和Jruby技能适用于JVM之外的其他语言的事实?

请记住,我故意将此问题保持为通用,但如果特定域中存在任何优势,请不要犹豫,对其进行描述 .

EDIT
为了澄清,如果我在Jruby中编写一些代码,在某些情况下,如果需要,我现在可以将代码移到JVM之外,或者至少我已经对Ruby有了更好的理解 . 而Groovy技能仅在使用JVM中存在的语言时才适用 . Jython和Jruby具有这种内置优势,Groovy必须弥补这一劣势吗?

如果Groovy没有你找到的任何优势,你建议只使用Jython或Jruby,请告诉我 .

Edit 2
感谢大家的所有答案,其中大多数都提出了相同的观点,Groovy与Java,Jython或Jruby集成得稍好一些 .

Follow up
使用Netbeans 6.5作为我的IDE我发现Groovy可以更好地与Java项目集成,然后是Jruby . 我不确定缺乏集成是否是Jruby或Netbeans的失败 . 但是在使用它之后,Groovy似乎肯定会有所帮助 .

5 回答

  • 1

    我在Ruby和Groovy中进行了相当广泛的开发(以及使用Grinder作为负载测试工具的一点Jython) .

    在3中,我最喜欢Groovy . 我最喜欢闭包语法,我认为它与JVM上其他java类的工作方式有最紧密的集成 . 自从我上次使用JRuby以来已经有一段时间了,但导入Java类并使用JRuby中的类加载器对我来说并不是那么干净 .

    事实上,Groovy本质上也是Java的超集,这意味着大量的Java程序员可以更快地在Ruby / JRuby上选择Groovy . 他们可以像Java一样开始编程,然后慢慢开始插入idomatic groovy .

    更多的是你要问的问题,我认为Groovy的另一个优点是,当你想要优化某些东西时,你所使用的语言几乎是完全相同的语法,它是Java . 如果您在Ruby或Python世界中工作,那么您将不得不去C大转移或Java,这也与那些语言完全不同 . Groovy中的编程往往有助于保持Java技能的某些程度 .

    如果您可以访问Ruby或Python基础结构,或者熟悉这种环境的团队,那么我可以看到选择其他语言之一 .

    实际上,它们中的3个都是非常好的语言,您选择的内容应该更多地取决于您尝试修复的问题以及您可以使用的资源 . 一旦掌握了一种动态语言,就可以轻松获得第二种或第三种语言 .

  • 14

    我想说如果你需要将Java与Jruby / Groovy混合使用,请使用Groovy . 正如大家所说,Groovy拥有更紧密的Java集成 .

    但就语言 implementation 而言,我更喜欢Ruby语言而不是Groovy,语言围绕着自身,在Groovy中有一些实现本身固有的hacks(只是观看Grails栈跟踪而不是Rails栈跟踪而你'我明白我的意思了 .

    我推荐看到Neal Ford的comparison of Groovy and JRuby

  • 1

    我认为Dick Wall在Java Posse播客(#213,大约34:20 in)中给出了这三者之间差异的非常好的总结......“JRuby旨在让程序员高兴...这是编程语言开发人员的选择; Python在简单性和教育方面有着非常强大的根基; Groovy的目标是成为Java开发人员的选择......这是一个非常熟悉的Java环境......支持注释“ .

    关于在JVM之外移动语言,我不需要简单安装,你需要设置一些环境变量 - 但它确实提供了许多好处,包括高度优化的成熟运行时和大集合图书馆 . JRuby团队现在报告的性能优于原生MRI . http://blog.headius.com/2008/08/twas-brillig.html

  • 3

    我只有Jython和Groovy的经验 . 目前,Jython的最大缺点是推荐的最新版本 生产环境 (2.2.1)具有"roughly corresponds to that of Python-2.2"(Jython FAQ)的功能集 . 有一个测试版实现了我认为的Python 2.5,它现在是一个版本 . 不知道JRuby是否可以这么说 .

  • 38

    我不知道为什么你应该选择Groovy,因为我不知道你的背景 . 如果您是Java开发人员,那么Groovy会比您当前的语言更像JRuby或Jython . Groovy结合了最好的Java,语言,Java,平台和Ruby语言 .

相关问题