Beyond the basics, Groovy is a rich tapestry of language features. It can be used either dynamically or statically typed; it’s your choice. It supports functional programming constructs, including first-class functions, method references, currying, and more. It has multiple inheritance, type inference, and meta-programming.