A multi-faceted language tool for the Java platform!

Groovy

Groovy

  -  46.06 MB  -  Open Source
  • Latest Version

    Groovy 4.0.22 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows XP / Vista / Windows 7 / Windows 8 / Windows 10

  • User Rating

    Click to vote
  • Author / Product

    Apache Software Foundation / External Link

  • Filename

    groovy-4.0.22.msi

  • MD5 Checksum

    a7357cb5bca26fa6699d6b863c6680fe

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.

  • Groovy 4.0.22 Screenshots

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

    Groovy 4.0.22 Screenshot 1

What's new in this version:

Fixed:
- MissingPropertyEx when accessing private static field in closure of same class
- STC: error message for inaccessible setter is not too helpful
- Reference to this in ctor before this/super call false positive
- STC: missing property error for implicit-this reference to private super field or method
- STC: error for abstract class private or package-private field access
- implicit type of catch parameter is written as Object
- Bootstrap method error for method reference used with a primitive literal
- STC loses generic specialization on inheritance
- SC: map access different for parameter and local variable of same type
- STC: map properties "class" and "empty" indicated as read-only
- STC: extension method cannot provide map property (read mode)
- STC: write property via extension method
- IllegalAccessError writing package-private property of other-package map-based type
- array or collection coercion of non-collection iterable produces single-element result
- STC: map property access within closure
- reference to the constructor of an abstract class is not detected
- STC: entry vs field for map-based types
- access error for inaccessible getter of super class
- STC: inferred type of closure delegate, owner and thisObject
- STC: inferred type of name within closure (delegate property versus owner field) *
- Compiler does not promote/check lambda results when required
- unexpected crash in class generation "On receiver: x with message: getAt and arguments: 0"
 STC: add error for write of private or package-private field of super class

Dependency upgrade:
- Bump jackson to 2.17.1
- Bump picocli to 4.7.6
- Bump antlr to 4.13.1.4
- Bump antlr to 4.13.1.5
- Bump hsqldb to 2.7.3 (test dependency)
- Bump slf4j to 2.0.13 (test and standard install dependency)
- Bump jqwik to 1.8.5 (test dependency)
- Bump spotbugs to 4.8.6
- Bump gson to 2.11.0 (test dependency)
- Bump javaparser to 3.26.1

Improved:
- Issue a warning when accessing static fields that are "shadowed" by get() methods
- Bytecode for identity