Ruby和Groovy的核心抽象编程模型是非常类似的:所有东西都是一个对象,都有一个MOP1)控制着所有的活动,并且闭包都是除类之外的核心结构化工具。Ruby使用Ruby类库,Groovy使用Java类库,并作了一些添加。这是最大的不同,并且这也是一个很大的不同。在语句的构成上,这样的语句:
File.open( 'blah' ) { | file | puts( file.read ) }
变成了:
println ( new File ( 'blah' ).text )
这没有表现出Groovy闭包的语法,而Groovy闭包的语法是:
{ file -> doSomething ( file ) }
这和Ruby只有轻微的不同,但也表明有时候Groovy在某些事情上与Ruby有着不同的解决方式。所以,从Ruby转移到Groovy会有一些注意事项。