我们正在用Java写一个大型的生产系统,我正在考虑我们是否可以用某种基于JVM的动态语言编写一些组件。从Java互操作性的角度来看,Groovy似乎是最好的选择。但是,Groovy的实现是否足够可靠地用于生产(我会这样认为),并且Groovy语言规范本身是否足够稳定,以便我们不必在一两年内大幅修改生产代码?你有什么经验?Groovy语言的稳定性如何?
总结(5/30/09):好的评论,我得到的意思是,你应该谨慎采用Groovy进行关键任务的生产使用,对于诸如整合测试用例等辅助用法来说是很好的,而且还有一个中间地带,它可能很好,但首先做你的功课。性能是一个问题,需要与开发人员的生产力提高保持平衡。 Bill和Ichorus基于Groovy的使用也有同样有用的答案,所以这是一个硬币折腾。
更新(12/3/09):最近我一直在认真研究Scala,这是另一种JVM语言。它由Martin Odersky设计和实现,Martin Odersky是当前javac编译器的原作者和Java Generics的合作设计者。 Scala是强类型的,但使用类型推理来去除大量的样板。这是面向对象和函数式编程的完美结合。詹姆斯戈斯林likes it。 Groovy的作者James Strachan,likes it too。而Odersky撰写javac的经验意味着Scala的原始performance is not far from Java's,这是令人印象深刻的。
更新(4/26/11):看看Groovy++,Groovy的静态类型扩展,其中performance等效于Java。看起来很有趣。
你如何定义“足够可靠”?你在寻找什么标准?你如何定义“足够稳定”?你打算使用哪些功能? – 2009-04-26 23:48:15
很好的澄清问题。 “足够可靠”意味着字节码生成的质量非常高,核心库中的错误很少(这些需要简单的解决方法并且要有充分的文档记录)。这里的“足够稳定”是指Groovy语言规范:我们今天编写的代码在Groovy的后续版本出来时需要大量的portig吗?让我们将所需功能的域设置为Koenig的Groovy in Action中讨论的功能域。 很多好的反馈在这里,谢谢大家! – 2009-05-02 07:19:28
关于性能,请看看Groovy 2.0:http://java.dzone.com/articles/groovy-20-performance-compared – 2012-09-02 05:33:43