Key

This line was added.

This line was removed.

Formatting was changed.

Comment:
Migrated to Confluence 5.3

The core abstract programming model of Ruby and Groovy are very similar: everything is an object, there is a MOP in control of all activity, and closures are the core structuring tool after classes. Ruby uses the Ruby library, Groovy uses the Java library with some additions of its own. This is the biggest difference but it is a huge difference. Syntactically, things like:

Code Block

File.open( 'blah' ) { | file | puts( file.read ) }

becomes:

Code Block

println ( new File ( 'blah' ).text )

which doesn't show that the Groovy closures syntax is:

Code Block

{ file -> doSomething ( file ) }

which is slightly different from Ruby, but does show that sometimes Groovy has a different approach to certain things compared to Ruby. So in moving from Ruby to Groovy, there are gotchas.