Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current ·  View Page History

Groovy is an agile dynamic language for the Java Platform that has many of the features that people like so much in languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax.

 Groovy works cleanly with all existing Java objects and libraries and compiles straight to Java bytecode!

 Groovy is ideally designed to reach the following purposes :

  • developping in a quick, concise and fun way web applications. The Grails project shows you this evidence.
  • bringing the power  of a scripting language directly into the Java Platform
  • writing test cases for unit tests very easy.
  • prototyping and productizing real industrial applications
  • writing shell scripts easily

 Groovy can be used according your kind of application in two main modes :

  • traditionnal byte code compiled  applications
  • purely interpretated scripts

Groovy is powerful thanks to :

  • language conceptual enhancements
    • Closure support, ie the ability to define piece of executing code handled like any other object
    • native syntax for lists and maps
    • builder notion, ie ... TBD
    • regex operators
    • native beans
    • operator overloading  to simplify working with datatypes Collections and Maps
    • Polymorphic iteration and autoboxing
    • extension of java objects api
    • TBD
  • providing of standard very useful libraries
  • providing user great modules
    • Grails
    • Gram
    • COM Scripting
    • GroovySWT
    • GSP
    • GSQL
    • Process
    • XMLRPC

Why Grovvy is a good choice for you

TBD...

Getting started

Probably the best way to get started on Groovy is to install a binary distribution and play with it after you've read the quick start introduction.

You can learn Groovy by following the beginners tutorial.

You may want to read the user guide or browse some of the links on the left of this page.

News

The Groovy team is always looking at ways to further improve and encourage the collaboration and contributions from the community.
Today, the we are looking for a sponsor for a dedicated server that would host our new Continuous Integration server. If you or your company is interested in helping Groovy by contributing hardware and/or hosting, please contact us.
On behalf of the Groovy team, thanks in advance for your help and support!
We're looking forward to hearing from you.
Heads up on a joint bug-fix release, with Groovy 2.0.8 and 2.1.3.
We released the 2.0.8 bug fix in particular for Grails which was affected by a couple issues but that hadn't planned on migrating just yet to the 2.1.x line.
If you want to learn more about the issues closed, please have a look at the JIRA release notes for Groovy 2.0.8 and Groovy 2.1.3
Head down to the Download section to download our the latest releases.
Thanks for all your contributions, and keep on groovy'ing!

The Groovy development team is happy to announce the joint releases of Groovy 1.8.9, 2.0.7, and 2.1.1!

Those three releases are essentially bug fix releases.
You can have a look at the JIRA issues we tackled here:
Head over to the Groovy distribution area to download the Groovy distributions and documentation.
Some further notes about our current releases and branches:
Groovy 1.8.9 is the last planned update for the 1.8 versions of Groovy unless critical bugs arise. 
When resolving bug requests we may not automatically apply them to the 1.8 versions of Groovy as we are trying to focus on later releases when we can and backporting some of the fixes can be a little tricky. 
However, if you have a critical bug and are unable to upgrade, please indicate that in the relevant jira issue and we will try to take that into account when resolving issues. 
Of course patches/pull requests against the 1_8_X branch are also welcome! :-)
Releasing Groovy 2.0.7 wasn't strictly necessary as upgrading to Groovy 2.1.1 is straightforward but we wanted to make a formal last release for the 2.0.x branch. 
And going forward, bug fixes will be targeted at both 2.1.x and 2.2 lines, and only 2.2 will get any new features that may come, but we don't anticipate that 2.0.x will get further fixes as the 2.1.x line supersedes that branch.

Thanks a lot to all those who contributed to this release, and we're looking forward to hearing about your feedback!

InfoQ interview Groovy project lead Guillaume Laforge about the recent release of Groovy 2.1.

In this interview, the discussion centered around the new features of that release, including coverage of the "invoke dynamic" support, performance, meta-annotations, compiler configuration, and more.

Groovy 2.1 released
The Groovy team is pleased to announce the release of Groovy 2.1.0.
With over 1.7 million downloads in 2012, a strong ecosystem, Groovy continues its development and adoption, refines existing features and evolves new ones.
In this new release, Groovy 2.1:
  • offers full support for the JDK 7 “invoke dynamic” bytecode instruction and API,
  • goes beyond conventional static type checking capabilities with a special annotation to assist with documentation and type safety of DSLs and adds static type checker extensions,
  • provides additional compilation customization options,
  • features a meta-annotation facility for combining annotations elegantly,
  • and provides various other enhancements and minor improvements.
Please read all the details about the new features and improvements in the Groovy 2.1 release notes document:
You can download Groovy 2.1.0 from the Download area:
And have a look at the JIRA tickets we worked on:
Thanks a lot to all our users, contributors and committers who made this release possible.
I'd particularly like thank our new committers: Pascal Schumacher, André Steingreß and Tim Yates, for all their feedback and various contributions. Welcome to the team!
The Groovy team is looking forward to your feedback on this new release!
Keep on groovy'ing!

Read more News on the Groovy Blog

Labels
  • None