Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

If you plan to contribute a "big" enhancements please give enhancement please discuss it on the developer mailing list first. Give everybody a few days for discussion (using the issue tracker) before you start working. This assures that you do not waste time implementing a feature that could be rejected later on.

...

FeatureDescriptionSkillsDifficultyMentorStatus
Grammar rewriteThe current Groovy grammar is written using ANTLR 2. For maintenance reasons, we would like to migrate the grammar to ANTLR 3 or ANTLR 4. Originally planned for Groovy 3, we will probably not be able to do that if no one helps. It is an important background task which covers the grammar of Groovy, the grammar of Java and a good knowledge of the Groovy AST (for backwards compatibility).Grammar writing (Antlr helps a lot!), parsers, Groovy AST (nice to have)HardJochen Theodorou

Delayed

Bytecode optimizationsSince Groovy 2.0, we have two flavours of bytecode: the dynamic bytecode, corresponding to the main and legacy Groovy, and a "static" bytecode, triggered using the @CompileStatic annotation, which is closer to what Java produces. Both need specific bytecode optimizations.ASM, JVM BytecodeHardCédric ChampeauIn progress
Javascript backendGroovy runs on the JVM, but we would also like to see a Javascript backend. Of course, a prototype would have limited capabilities compared to what the JVM one offers, mostly because the Groovy language is not only a language but also a rich API relying internally on JDK APIs.Javascript, Groovy compiler internalsHardGuillaume LaforgeIdea
Lambda supportJDK 8 will offer support for lambdas. Lambdas are close to what Groovy offers with closures, but the syntax, implementation and more importantly semantics are quite different. A future version of Groovy should be able to support both closures (Groovy) and lambdas (JDK 8).JVM bytecode, grammarHardJochen TheodorouNot started
Lazy datastructures and comprehensions

The idea would be to have Groovy support generators, lazy evaluations, ... See for example http://blog.bloidonia.com/post/22117894718/groovy-stream-a-lazy-generator-class-for-groovy

It is also important to take a look at what APIs are being written in JDK 8 because most of the APIs written for the new lambdas are specifically lazy.

AlgorithmicsMediumPaul KingPrototype
New MOPThe new MOP (Meta Object Protocol) is a key feature of Groovy 3. The objective is to rewrite the MOP totally, in order to provide a more consistent, powerful and performant MOP. See http://groovy.codehaus.org/MOP+2.0+ideasLanguage theoryMediumJochen TheodorouIn progress
BugfixesAs the language is widely used, we have a lot of bug reports. Unfortunately, the team is too small to tackle them all. If you find a bug that you think you can work on, do not hesitate to help! Easy to hardany member of Groovy coreIn progress
ModularizationGroovy 2 came with the concept of modularization and is now splitted into modules. Each module is a logical group of features (for example, XML, JSON, Swing, ...). While Groovy core was reduced by half, there's still plenty of room for improvement and further modularization.ArchitectureEasyPaul KingIn progress
DocumentationOn every project, documentation is never enough, nor up-to-date. Groovy falls into that trap too. A very good way to get into Groovy is to start documentation, fix documentation or improve javadocs. There are also side projects like a new website, a new Groovy Web Console which require some time but were never started. EasyGuillaume LaforgeIn progress
SpecificationHelp joining the specification effort. The Groovy language has evolved a lot and there's no complete specification available yet. MediumGuillaume LaforgeStandby
SecurityHelp us improving java.security support in Groovy. We have, for example, unit tests failing periodically because of security tests (Security Manager related). No one in the team is an expert in that domain so any help would be very appreciated!Java securityMediumCédric ChampeauStandby
Groovy for Android

A lot of us would like to see Groovy run on Android. There are some technical challenges but the good news is that some hackers (Marcin Erdmann and Erik Pragt) managed to do it for Groovy 1.7. It's not production ready yet, and we would like to have, at some point, support in the Groovy distribution itself (aka, no patch required). Running Groovy is one thing, doing something with it is another, so a side project for this is definitely to make Groovy a language of choice to build Android applications. We think some projects like Griffon, for example, have a strong interest in that, by making the design of UIs much easier.

See http://skillsmatter.com/podcast/groovy-grails/groovy-android

Android, JVMMediumCédric ChampeauPrototype
Groovy ConsoleThe Groovy Console is a very nice tool. However, there are several things that can be improved: syntax highlighting, especially for large scripts, which is too slow; the AST Browser which can be improved in several ways (displaying node metadata, more focused bytecode view, ...)Swing, GroovyEasy to medium In progress