Choosing a language is often a matter of taste. While a lot of people using Groovy come from a Java background, not every Java developer is willing to use Groovy because of its dynamic nature. Often, those people are disturbed by the lack of error reporting at compile time for code that would be obviously wrong in a static world. Unfortunately, by nature, Groovy cannot catch such errors because program semantics are ensured at runtime.
Well, this was before Groovy 2. In the latest version of the language, we introduced two annotations, @TypeChecked and @CompileStatic, which are precisely aimed at helping Java developers to seal the semantics of the language at compile time.
In this session, we will learn what type checking and static compilation mean and see that Groovy makes a giant step forward for those who want to totally replace Java with Groovy code."