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

« Previous Version 13 Current »

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
  • 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
  • No labels