- How is it Agile?
This should cover quite a few features of groovy. One of the agile feature that I like is that the properties and methods are dynamic, obj.get('propertyName'), obj.propertyName and obj.getPropertyName() are doing the same thing (if not messed up). It greatly helped in projects where there is a common property on all objects without a proper base type (or when the type cannot be imported)
- How shorter are the syntax compared to Java's?
Yeah, the collection methods (each, findAll, collect, etc) are good way to shorten the code. Groovy builder also offers better syntax than Java builder. Another example:
will return null if any of the property in the chain is null, saving a lot of null check code.
- Can I use existing Java libs out there?
Yes, and both Java and Groovy compiles to the same kind of .class file.
- Lastly, can anyone share their experience on this lingo? What you love and hate
It is not bad and pretty convenient in many ways, just need to have some discipline as the code can become too tricky to read/debug (or I am sure you will hate it :) ). In serious project, sometimes you need to do experiments to find out what the shortcuts really do/mean.