What are the futures that Kotlin have that Groovy do not?
- data classes
- sealed classes
- extension methods (which are easier to write and use)
- non-nullable types
- cleaner standard library, with classic names for FP constructs (like map instead of collect)
- Kotlin is newer, it didn’t implement closures as a class groovy.lang.Closure, and because of that integrates better with java 8 than groovy does
- AST transformations
- @Delegate AST (which is way better than in kotlin)
- standard library has templating
- standard library has ConfigSlurper and ConfigObject, which are nicer to use than java.util.properties
Groovy also has type checking extensions.
These can be used to provide type checking support for AST transformations, or to make type checking stricter in some spots.