Channels ▼
RSS

Parallel

Oracle Java 8 Launched with Lambda Expressions for Parallelism


Oracle gathered journalists from across the world this week to mark the official launch of Java 8 with the European leg of meetings staged Prague, Czech Republic. The company has described this new Java as the "most significant reengineering" of the language and platform since its launch.

Perhaps it may be more accurate to say that it is the most significant reengineering since Java SE 5.0, which was built with additional power from Generics — a set of functions meant to add stability to code by virtue of making bugs detectable at compile time as compared to runtime. But then again perhaps not, Oracle is more bullish about this version that ever before.

So in official terms, Oracle has released Java Platform Standard Edition 8 (Java SE 8), Java Platform Micro Edition 8 (Java ME 8), and group of related releases around Oracle's Java Embedded products.

The key features of JDK 8 are Project Lambda (JSR 335, see Lambda Expressions in Java 8 and Lambdas and Streams in Java 8 Libraries for details), the Nashorn JavaScript Engine, a new Date and Time API (JSR 310), a set of Compact Profiles, and the removal of the "permanent generation" from the HotSpot Java Virtual Machine (JVM).

With this release, Oracle says it sees Java ME and Java SE now converging so that the firm can start to encourage and enable more consistent developer experience and more code reuse across the platforms.

"Java is the global standard for developing and delivering applications everywhere — from small devices to the cloud. The convergence of Java SE 8 and Java ME 8 is intended to provide a consistent development environment that improves developer productivity and application performance, along with the ability to 'right-size' the platform for deployment across an even wider range of use cases," said Nandini Ramani, vice president of development, Java Platform, Oracle.

Ramani spoke to journalists in Prague to explain that Java has cared about parallelism for quite some time now and, in fact, the concept of Lambda expressions has been around since the 1930s, pre-dating the arrival of any modern computer software as we know it.

Oracle is also announcing Oracle Java SE Embedded 8, which leverages the new Java SE 8 features and is optimized for mid- to high-end embedded systems. Java SE 8 and Java ME 8 are said to be on a strong convergence path, with Java ME 8 scheduled for availability later this spring.

Oracle now envisions that with a consistent Java 8 platform across embedded devices, desktops, datacenters, and the cloud, software application developers will be able to deploy applications faster, process and analyze in-flight data, and act on events as quickly as they occur.

Java 8 overview

Inevitably, Oracle has come in for criticism in light of the omission of Project Jigsaw in Java 8. This modularity function is intended to bring more security to Java when it does arrive (which will now be in Java 9).

Al Hilwa is program director for software development research at IDC and he says that Project Jigsaw, or the modularization of Java, is probably the most important next big thing to come in the next major Java release, and it will be critical for Java effectively supporting new devices and the Internet of Things (IoT).

"But right now with this release, the changes related to Lambda expressions are the most important single new thing in SE 8, that much is for sure. Lambda should be seen as part of the drive to make Java attractive for use in parallel processing architectures. Other capabilities in SE 8, like the Streams API, are also focused on parallel processing, while others, like Project Nashorn's faster JavaScript engine, are about performance in server workloads," said Hilwa.

Hilwa continued, "While this milestone finally delivers things that were discussed and promised years ago, I see still see it as a strong statement of commitment by the Java team and Oracle. Especially so if we note that this technology goes into open source under Open JDK and was done during a time when there has been a huge expansion in investment aimed at securing the platform."

In terms of Java SE 8, this release is the result of industry-wide development involving open review, weekly builds, and extensive collaboration between Oracle engineers and members of the worldwide Java developer community via the OpenJDK Community and the JCP.

Java SE 8 enhances developer productivity through reduced boilerplate code, what are described as "improved" collections and annotations, simpler parallel programming models, and more efficient use of modern, multicore processors.

Oracle also calls out new client Java features and enhancements as part of the latest JavaFX release within JDK 8. These include: an embedded-specific graphics stack, new UI controls, a Modena theme, functionality to enable developers to embed Swing content into JavaFX applications, new 3D graphics features, and additional HTML 5 support.

The firm is definite about repeating the "backward compatibility" message and says that Java SE 8 (as with previous versions of the platform) preserves the skill sets of current Java software developers and helps to protect Java technology investments.

Also in this mix is Java SE Embedded 8 to provide a development platform for embedded devices and the IoT, but which still includes the flexibility, portability, and features of Java SE 8, according to Oracle.

"Oracle Java SE Embedded 8 allows developers to leverage the three new Compact Profiles in Java SE 8, which are predefined subsets of the full Java SE 8 API specification and allow for creation of smaller platforms for embedded devices. With this release, Java SE can now be deployed on embedded devices based using as little as 10 MB static footprint and 16 MB of RAM, two-to-three-times smaller than Oracle Java SE Embedded 7," said the company.

Java ME 8 is a major update to the existing Java ME platform incorporating a large set of updated and new features, including Java language and API alignment with Java SE 8, support for modern Web protocols, a comprehensive application model, advanced security features, and standard APIs for power management and interaction with a broad set of standard peripherals.

Developers interested in getting started immediately with the Java SE 8 release can download the NetBeans Integrated Development Environment (IDE) 8.0, which will allow them take advantage of the latest Java features, as well as enhanced support for HTML5.

Java 8 overview


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video