One handy feature that made the cut in JDK 10 release train is Local-Variable Type Inference (JEP-286). This language feature is part of project Amber, a successor to Project Coin 🙂 With more frequent releases planned for the Java platform, we could expect to see 2 feature releases this year, so March release will be … Continue reading Local Variable Type Inference in Java 10
Starting in JDK 9 build 54, compiler support for private interface methods have been resurrected. This was one feature that was planned for Java 8 and did not make the final cut. It is now part of JEP 213. The primary motivation for this proposal is to enable code sharing between non abstract methods in … Continue reading Private interface methods in Java 9
Two years ago, I blogged about parallel for each construct using a very early version of lambda prototype compiler. At that time, Data Parallelism was already available in C# TPL, but Java designers were hard at work in bringing this idiom to Java. https://gist.github.com/aruld/4949503 Lambda expressions support in Java 8 is here for everyone to … Continue reading Parallel Looping Constructs in Java (revisited)
Java 8 adds support for bulk data operations (JEP 107) in the Collections library. It is unlikely every forms of bulk data operations will be added to the retrofitted Collections framework, but the language designers are making every possible effort in accommodating general use cases of "filter/map/reduce for Java". Libraries should make use of parallelization … Continue reading Java 8 – This ain’t your grandpa’s Java
Almost a year later since publishing the original Lambda proposal, JSR 335 EG has finally decided to adopt C# style syntax for Java 8 Lambda expressions. Brian has outlined the formal model for the new C# style syntax in his mail to lambda-dev: lambda = ArgList Arrow Body ArgList = Identifier | "(" Identifier [ … Continue reading Lambda expressions in Java 8 adopts C# style syntax
The improved varargs warnings, part of the Coin proposal finally made into the latest JDK 7 build. I believe build 123 is special as this milestone marks the completion of all the planned JSR 334 features (the head side of the Coin) scheduled for implementation in Java SE 7. So, Coin minting done? I think … Continue reading Annotation type to reduce varargs warnings available in b123, Java 7 Coin minting done?
Last November, Mark Reinhold announced that Closures will be added to the Java language and six months later we had an initial prototype based on the Straw-Man proposal and last month's update was considered a significant progress for the language in years. As mentioned in Mark's post, "Working with parallel arrays in Java, unfortunately, requires … Continue reading Parallel Looping Constructs in Java: Lambda expressions to the rescue?
One of the primary uses of Lambda expressions is to implement aggregate operations that can often be parallelized using multi-core processors we have today. The computation over bulk data structures is an area where Lambda expressions provide much needed support where part of the computation is caller defined. Doug Lea's JSR166y Concurrency interest group exactly … Continue reading Aggregate operations, the Lambda Goodness in Java
Recently, Brian Goetz published modified draft of the Lambda proposal. This draft is mature in terms of the direction where Lambda is heading for in the Java world and introduces some breaking changes from earlier draft to align with this direction. While there are few things that need to be sorted out, this draft is … Continue reading Lambdas in Java, Plan B in action
Project Coin includes the following proposals that will make into Java 7. - Binary literals and underscores in literals - Strings in switch - Simplified Varargs Method Invocation - Improved Type Inference for Generic Instance Creation (Diamond) - Improved Exception Handling for Java - try-with-resources (ARM) I have briefly touched upon try-with-resources construct in my … Continue reading Rest of Project Coin explored, advantage Java 7