Programming Groovy 2: Dynamic Productivity for the Java Developer