Groovy Roadmap
Groovy 1.6
- Maintenance releases
- Backport of minor features from 1.6 when valuable
Groovy 1.7
- Upgrade to ASM 3
- if necessary or deemed useful (more efficient bytecode?)
- Nested Classes & Anonymous Inner Classes
- GEP
- The exact semantics with relationship to the MOP should be properly defined through a GEP
- GEP
- Features to be considered
- Improved assert statement
- Enhanced annotations
- allow the use of closures, ranges, etc as annotation parameters
- allow annotations in more places (see JSR-308), in particular, annotating methods calls, declarations, or statements in general
- Loosen the parentheses omission for command statements
- Facilities for viewing / constructing ASTs
- Option in Swing console to view the AST with a JTree or as equivalent new Expression() like code
- API to parse Groovy snippets and return a fully built AST fragment
- AST Builder to simplify further the creation of ASTs when manipulating AST from Groovy
- Builder metadata system for IDE discovery and code completion
- Potential integration of GParallelizer for Groovy actors
- Potential integration of GParsec for parser combinators in Groovy
Groovy 2.0
- Upgrade to Antlr 3
- We'll be able to use the tooling support accompanying Antlr 3
- New MetaClass system
- Benchmark test suites to track progress of performance across releases
- New dynamic features that will be discussed in the GEP
- GEP
- defining the scope of changes
- describing the new system
- proposals of a more homogeneous system
- homogenize categories, EMCs, custom metaclasses
- homogenize the configuration / declaration / convetions
- have per-thread / scoped EMCs (like categories)
- per-module/library metaclasses
Ideas to be debated and scheduled
- Modularisation
- Short term: maybe just split DGM or non-all jar into pieces, leverage Grapes?
- Longer term: leverage OSGi or Jigsaw?
- Case Classes
- Generators
- List comprehensions
- Groovy incremental compiler
- Especially useful for the Eclipse plugin
- Concurrency features, beyond the inclusion of GParallelizer
- GEP
- Define what coverage we'd like to bring
- Work on this theme first as a module, and if deemed right, we can bring it back to groovy-core
- GEP
