Considering our limited human resources and time constraints, it is hard to give definitive and accurate estimates of the milestones we are going to release.
Tentative Roadmap
Groovy 2.1
...
Groovy 2.1 .8 is the current latest stable branch version of Groovy. Ongoing maintenance with minor incremental improvements will be delivered throughout 2012.
Feature set
You can leanr more about the feature set by reading the Groovy 1.8 release notes.
Releases
- Groovy 1.8-final: End of April 2011

- Groovy 1.8.1: End of July 2011

- Groovy 1.8.3: Early September 2011

- Groovy 1.8.4: Octobre 2011

- Groovy 1.8.5: End of December 2011

- Groovy 1.8.6: February 2012

- Groovy 1.8.7: April 2012
Groovy 2.0
Groovy 2.0 was formerly known as Groovy 1.9, but considering the important new features, a 2.0 moniker was better representing the importance of that release.
Feature set
Release mainly geared towards the alignments with the upcoming but delayed JDK 7.
- work related to JDK 7
- usage of invokedynamic and annonymous classloader (JDK7 features)
- updates for JDK 7 language features (aka Project Coin)
- modularity of Groovy (splitting Groovy in smaller JARs on a per feature basis) and extension modules
- static type checking AST transform
- static compilation AST transform
Releases
- Groovy 1.9-beta-1: July 2011

- Groovy 1.9-beta-3: September 2011

- Groovy 1.9-beta-4: October 2011

- Groovy 2.0-beta-1: November 2011

- Groovy 2.0-beta-2: December 2011

- Groovy 2.0-beta-3: May 2012

- Groovy 2.0-rc-1: end of May 2012

- Groovy 2.0-rc-2: early June 2012

- Groovy 2.0-rc-3: mid June 2012

- Groovy 2.0-rc-4: end of June 2012

- Groovy 2.0-final: end of June 2012
Groovy 3.0 (2013)
Feature set
...
- offers full support for the JDK 7 “invoke dynamic” bytecode instruction and API for improved performance,
- goes beyond conventional static type checking capabilities with a special annotation to assist with documentation and type safety of Domain-Specific Languages,
- adds static type checker extensions,
- provides additional compilation customization options,
- features a meta-annotation facility for combining annotations elegantly.
Releases
- Groovy 2.1 beta: end of December 2012

- Groovy 2.1 RC: early January 2013

- Groovy 2.1 final: end of January 2013

Groovy 2.2 (Q3 2013)
Feature set for consideration
- Class-loading-less compilation
- using ASM when needed, to avoid loading/initializing classes needed during the compilation
- Stub-less joint compilation
- to avoid various problems with the stubs and the various compilation phases
- Static traits or mixins
- but dependent on stub-less joint compilation issues
Groovy 3.0 (Q1 2014)
Feature set for consideration
- New Meta-Object Protocol dedicated to fully leverage "invoke dynamic"
- Rewrite the Groovy grammar from scratch with Antlr 4 (moved to Groovy 4)
- Retrofitting Groovy closures to accomodate accommodate JDK 8 upcoming closures for interoperability
Groovy 4.0 (
...
Q1 2015)
Feature set
...
for consideration
- No concrete plans at the moment
Other topics we could consider for later Groovy
- add static "trait" capabilities
- compiler related:
- investigate the integration of the Eclipse joint compiler to replace the Groovy stub-based joint compiler
- investigate making the groovyc compiler multithreaded
- Incremental compiler
- a treturn keyword or dedicated AST transformation for tail calls for closures and methods
- Incremental compiler
- Improved runtime performance
- ability to pass expression trees / AST nodes as parameters (see C# 4's own expression tree)
- lexical categories
- a symbol concept, a bit like Ruby's :symbol, or like Java interned strings
- co-routines and/or generators
- tail-call recursion
- pattern matching
- parser combinators
- a native template engine compiling to AST (faster, correct line numbers for error reporting, optimized outputting, etc.)
- ...