Oracle has released the first developer preview of Java 8 for the full range of platforms (Windows, Max OS X, Linux, Solaris).
"This milestone is intended for broad testing by developers," Java Platform Chief Architect Mark Reinhold wrote on his blog.
We've run all tests on all Oracle-supported platforms and haven't found any glaring issues. We've also fixed many of the bugs discovered since we reached the Feature Complete milestone back in June.
It should be noted that early access releases won't necessarily include all the latest security patches. Also, as you would expect, there are some bugs and omissions. Amongst them, JavaDoc for the media classes for Java FX is missing, as is the source code for the new date and time API.
"We'll do our best to read, evaluate, and act on all feedback received via the usual bug-reporting channel between now and the end of October," Reinhold states. "After that we'll gradually ramp down the rate of change in order to stabilize the code, so bugs reported later on might not get fixed in time for the GA release."
The big headline feature for Java 8 is Project Lambda (JSR 335), intended to make it easier to write code for multicore processors. As well as lambda expressions themselves, Project Lambda adds method references (compact lambda expressions for methods that already have a name), and default methods (which provide a mechanism by which programmers can add new methods to interfaces without breaking existing code that implements the interface). The lambda project also extends the libraries to support paralizable operations on streamed data.
The lambda team have been publishing preview builds of the lambda repository for some time, but with the start of the developer preview phase they will no longer be doing so.
The lambda preview builds were a very useful vehicle for testing and getting community feedback. We appreciate the efforts of all those who took the time to download and try the builds. Thanks also go to those who created their own builds. Your feedback and bug reports were invaluable in ensuring that the lambda efforts were a success. Thank you!
Away from Lambda, Java 8 gets a new Date and Time API (JSR 310), and the Nashorn JavaScript engine. More controversially, it also removes the Permanent Generation from the HotSpot virtual machine.
Java 8 also introduces the concept of Compact Profiles so that applications that do not require the entire platform can be deployed and run on small devices. This is intended to enable the migration of applications currently built on the Java ME Connected Device Configuration (CDC) to switch to using appropriate profiles of the Java SE platform. As such it can be seen as part of the long-term effort to converge CDC with the Java SE platform.
Profiles for Java SE differ somewhat from the concept used for Java EE. In Java EE a profile is a set of JSR specifications which, when implemented, represent a subset of the platform. For Java SE a profile is specified as a list of packages.
The inclusion of profiles for Java SE is a consequence of the on-going problems with the Jigsaw modularity solution, which went back to the drawing board again recently.
Java 8 was originally planned for release this month but, due to the large number of security issues that have beset the platform of late, Oracle wisely decided to delay availability until Q1 2014 at the earliest.