JSR 335 (Lambda Expressions for the JavaTM Programming Language) aims to support programming in a multicore environment by adding closures and related features to the Java language. These are described in State of the Lambda and State of the Lambda, Libraries Edition.
The goal of OpenJDK Project Lambda is to host a prototype implementation of JSR 335 suitable for inclusion in JDK 8, the Reference Implementation of Java SE 8. The prototype implementation is discussed on the lambda-dev mailing list.
The prototype compiler is being implemented in OpenJDK.
- Source code is available at http://hg.openjdk.java.net/lambda/lambda.
- Binary snapshots of the lambda-enabled JDK prototype are available at http://jdk8.java.net/lambda.
Maurice Naftalin has written a set of answers to Frequently Asked Questions about Lambda.
This Project is sponsored by the Compiler Group.
IDEs are gaining some support for Lambda.
- Netbeans 7.4 RC1. Includes JDK 8 Lambda support. Run NetBeans itself on JDK 7, configure a JDK 8 build as a Java platform within NetBeans, and set the project's source level to 8.
- IDEA 12 EAP with experimental Lambda support
- Unofficial builds of Eclipse with experimental Lambda support
- State of the Lambda, September 2013 (Language features and rationale)
- State of the Lambda: Libraries Edition, September 2013 (Library APIs, primarily Streams)
- Early Draft Review #3
- Defender methods v4 (PDF; describes a feature for pragmatic interface evolution)
- Formal model for extension method linkage (March 27, 2012) (PDF)
- Translation of Lambda Expressions (April 2012)
- State of the Lambda v4 (Describes the proposed scope and features of closures)
- State of the Lambda: Libraries Edition (November 2012)
- State of the Lambda: Libraries Edition (April 2012)
- Early Draft Review #1
- State of the Lambda v3
- Defender methods v3
- Closures for Java (Nov 2009)
- Closures for Java: The Q&A (Dec 2009)
- Straw-Man Proposal (Dec 2009)
- Java Language Specification draft, based on the Straw-Man Proposal (Jan 2010)