Paradigm | Multi-paradigm: object-oriented, imperative, functional, aspect-oriented, scripting |
---|---|
Designed by | James Strachan |
Developer | Guillaume Laforge (PMC Chair) Jochen Theodorou (Tech Lead) Paul King Cedric Champeau |
First appeared | 2003 |
Stable release | 4.0.23[1] (9 September 2024 ) [±] |
Preview release | 4.0.0-beta-1
/ September 6, 2021[2] |
Typing discipline | Dynamic, static, strong, duck |
Platform | Java SE |
License | Apache License 2.0 |
Filename extensions | .groovy, .gvy, .gy, .gsh [3] |
Website | groovy-lang |
Major implementations | |
Gradle, Grails | |
Influenced by | |
Java, Python, Ruby, Smalltalk | |
Influenced | |
Kotlin |
Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine (JVM) bytecode, and interoperates seamlessly with other Java code and libraries. Groovy uses a curly-bracket syntax similar to Java's. Groovy supports closures, multiline strings, and expressions embedded in strings. Much of Groovy's power lies in its AST transformations, triggered through annotations.
Groovy 1.0 was released on January 2, 2007, and Groovy 2.0 in July, 2012. Since version 2, Groovy can be compiled statically, offering type inference and performance near that of Java.[4][5] Groovy 2.4 was the last major release under Pivotal Software's sponsorship which ended in March 2015.[6] Groovy has since changed its governance structure to a Project Management Committee in the Apache Software Foundation.[7]