当我可以使用 Jython 或 Jruby 时,为什么我要选择使用 Groovy?该语言是否提供了任何固有的优势来弥补 Jython 和 Jruby 技能适用于 JVM 之外的其父语言的事实?
请记住,我故意保持这个问题的通用性,但如果特定领域存在任何优势,请毫不犹豫地描述它们。
EDIT
澄清一下,如果我在 Jruby 中编写一些代码,在某些情况下,我现在可以根据需要将该代码移出 JVM,或者至少我对 Ruby 有了更好的了解。而 Groovy 技能仅在使用 JVM 内存在的语言时才适用。 Jython 和 Jruby 有这个内置的优势,Groovy 需要用什么来弥补这个劣势呢?
如果 Groovy 没有您发现的任何优点,并且您建议只使用 Jython 或 Jruby,请告诉我。
Edit 2
感谢大家的所有回答,他们中的大多数都提出了相同的观点,Groovy 与 Java 的集成略好于 Jython 或 Jruby。
跟进
使用 Netbeans 6.5 作为我的 IDE,我发现 Groovy 与 Java 项目的集成比 Jruby 更好。我不确定缺乏集成是否是 Jruby 或 Netbeans 的失败。但在使用了一点之后,Groovy 似乎确实有优势。
我在 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 基础设施有特殊的访问权限,或者团队熟悉这些环境,那么我可以考虑选择其他语言之一。
确实,它们都是非常好的语言,您选择什么应该更多地取决于您要解决的问题以及您可以使用的资源。一旦您精通一种动态语言,学习第二种或第三种就会容易得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)