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 1.7.x
Releases
- incremental bug fix releases through 2010
Groovy 1.8.x
Feature set
Here are a few topics we're considering for Groovy 1.8 and beyond.
- internal runtime optimization for better performance
- extended command expression (GEP-3) for nicer Domain-Specific Languages capabilities
- extended annotations (closures parameters)
- more functional aspects to closures (currying, trampoline, memoization)
- support for joint compilation of AST transformations
- modularity of Groovy (splitting Groovy in smaller JARs on a per feature basis)
- native JSON builder / parser
Releases
- Groovy 1.8-beta-1: July 2010

- Groovy 1.8-beta-2: September 2010

- Groovy 1.8-beta-3: December 2010
- Groovy 1.8-RC-1: Early-January 2011
- Groovy 1.8-RC-2: End-January 2011
- Groovy 1.8 GA: February 2011
Groovy 1.9
Feature set
Release mainly geared towards the alignments with the upcoming but delayed JDK 7.
- work related to JDK 7
- notes on JDK 7 and JDK 8 future
- usage of invokedynamic and annonymous classloader (JDK7 features)
- updates for JDK 7 language features (aka Project Coin)
Releases
- Groovy 1.9-beta-1: April
- Groovy 1.9-beta-2: June
- Groovy 1.9-beta-3: September
- Groovy 1.9-RC-1: Early October
- Groovy 1.9-RC-2: End of October
- Groovy 1.9 GA: November
Groovy 2.0
Feature set
- New Meta-Object Protocol
- Incremental compiler
- Improved runtime performance
- Retrofitting Groovy closures to accomodate JDK 8 upcoming closures for interoperability
Other topics we could consider for Groovy 1.8, 1.9, 2.0 and beyond
- 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.)
- ...
Labels