A flexible and extensible Java-like language for the JVM

Apache Groovy is a multi-faceted language for the JVM. It aims to provide a Java-like feel and syntax, but with added productivity features. It supports OO and functional paradigms, and offers both static and dynamic natures for strong yet flexible typing. It supports the creation of powerful scripts and elegant Domain-Specific Languages. It offers bidirectional interoperability with Java classes and libraries, and supports language extensions through in-language macros, AST transformations and meta-programming.

Flat learning curve

Concise, readable and expressive syntax, easy to learn for Java developers, flexible typing makes it more friendly for Python programmers or data scientists

Smooth Java integration

Seamlessly and transparently integrates and interoperates with Java and any third-party libraries

Vibrant and rich ecosystem

Web development, reactive applications, concurrency / asynchronous / parallelism library, test frameworks, build tools, code analysis, GUI building

Powerful features

Closures, builders, traits, runtime & compile-time meta-programming, functional programming, type inference, and static compilation

Domain-Specific Languages

Flexible & malleable syntax, advanced integration & customization mechanisms, to integrate readable business rules in your applications

Scripting and testing glue

Great for writing concise and maintainable tests, and for all your build and automation tasks


Apache Groovy events you shouldn't miss!

For more events see the Events page

They all use Apache Groovy!