A multi-faceted language tool for the Java platform!

Groovy

Groovy

  -  32.96 MB  -  Open Source
Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar, and easy to learn syntax.

It integrates smoothly with any Java program and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime, and compile-time meta-programming and functional programming.

Features and Highlights

Flat learning curve
Concise, readable, and expressive syntax, easy to learn for Java developers.

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, 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.

The Groovy programming language is supported by the Apache Software Foundation and the Groovy community.

How to Use
  • Open a terminal or command prompt on your PC
  • Set up the Groovy environment variables if needed
  • Run Groovy scripts using the groovy command
  • Use the interactive shell with groovysh for quick testing
  • Integrate Groovy with Java applications if required
  • Utilize Groovy libraries for advanced scripting
  • Debug scripts using logging and exception handling
  • Explore documentation for built-in functions and syntax
System Requirements
  • OS: Windows 11 or Windows 10 (64-bit recommended)
  • Processor: Intel/AMD 1.5 GHz or faster
  • RAM: Minimum 2GB (4GB or more recommended)
  • Storage: At least 500MB free space
  • Java: JDK 8 or later required
PROS
  • Easy to learn for Java developers
  • Supports dynamic and static typing
  • Compatible with Java libraries and frameworks
  • Concise and expressive syntax
  • Strong community and documentation
CONS
  • Slower execution than pure Java
  • Requires Java runtime installation
  • Limited standalone development tools
  • Not as widely used as Java or Python
  • Can be harder to debug in complex projects


Why is this app published on FileHorse? (More info)
  • Groovy 5.0.8 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Groovy 5.0.8 Screenshot 1

What's new in this version:

Fixed:
- @Delegate regression: fails to skip a final method inherited from a precompiled superclass
- AstNodeToScriptAdapter decompiler drops or corrupts several constructs when rendering AST back to source
- Regression of GROOVY-11715 - Unordered Annotation members
- Nondeterministic reflection order flows into generated bytecode, breaking reproducible builds
- `@CompileStatic` lambda with a primitive-typed parameter targeting a generic functional interface fails at runtime with `LambdaConversionException`
- Groovy 5.0.7 fails to compile or startup with UnsupportedOperationException
- unsound cast for property access on union type (instanceof A || instanceof B) throws ClassCastException (fix for GROOVY_5_0_X)
- Incorrect "abstract method not implemented … same name but different return type" error for a valid covariant override
- @TypeChecked switch on enum: unqualified case constants pass type checking but throw MissingPropertyException at runtime
- False positive "name clash" for a valid override when a `? super` wildcard uses a type that declares the same type variable name

Dependency upgrade:
- Bump ivy to 2.6.0

Improved:
- box-identity divergence for primitive varargs with classic bytecode
- chooseBestMethod returns candidates in identity-hash order, making static-compilation output path-dependent
- Covariant bridge methods are emitted in hash order, not the order they are found
- Synthetic class-literal fields and accessors are emitted in hash order, not the order the literals were encountered
- @AnnotationCollector emits collected annotation members in hash order when the collector is precompiled
- Add JDK 27 constant for GROOVY 5