Groovy 1.x(来自http://groovy.codehaus.org)和 Groovy++(来自http://code.google.com/p/groovypptest)是两种不同的语言,还是只是一种语言的两个部分?为什么或者为什么不?
3 回答
Groovy++ 网站上提供了您问题的答案。这是您链接到的页面上的第二句话!
Groovy++ 是 Groovy 编程语言的静态类型扩展。
Groovy++ 是 Groovy 的扩展。它以 Groovy 为基础,在某些或所有类中添加了真正的静态类型。目标是性能和其他改进。同样,您链接到的页面具有完整的描述。
最近,Groovy 确实提高了它的性能,并且随着 Java 7 的加入invokeDynamic
,性能可能很快就会几乎与 Groovy++/Java 一样快(差异几乎可以忽略不计)。
从软件架构的角度来看,Groovy++ 可能是 Groovy 的扩展。
但是如果你看一下语言级别:如果你使用动态方法调用并用 注释该类会发生@Typed
什么?编译器会抱怨未知的方法。
我认为 Groovy++ 是一种新语言,因为带@Typed
注释的 Groovy 类不允许像未带注释的 Groovy 类那样动态调用。它改变了代码的语义。
Groovy++ 是 Groovy 的一个子集。
正式的 Groovy++ 只是 Groovy 库。Groovy++ 甚至没有任何特殊语法并使用 Java 注释。
但实际上 Groovy++ 是 Groovy 方言(当然不是新语言)。
@Peter Groovy++ 禁止一些 Groovy 自由(据我所知,由于良好的代码风格)。
但是,Groovy++ 提供了许多语义扩展,例如非常复杂的类型推理系统、特征、扩展方法、函数式编程库等。
因此,我认为 Groovy++ 不仅仅是您所说的“Groovy 的子集” 。