Design Con 2015

Everything you want (or need) to know about the new Java 8

March 25, 2014

Bernard Cole-March 25, 2014

Very soon after the James Gosling's Java language and its virtual machine (JVM) was introduced by Sun Microsystems in the late 1990s, it was king of the world, having kicked off the move toward confederations of connected devices that 15 years later is now called the Internet of Things. .

Java was in web servers and a vital part of the web services structure (now referred to as The Cloud), in mobile phones and in a variety of both wired and wirelessly connected: embedded devices (what is now called the Internet of Things). It is even the underpinning the open source Eclipse Integrated Development Environment adopted by many embedded design companies.

But with the acquisition of Sun Microsystems by Oracle in 2010 and along with it the rights and responsibilities for supporting Java, the corporate push seemed mainly toward its use and promotion in its business and corporate IT accounts. It remained alive and well in mobile and smartphones and is a vital part of what makes them the multimedia and multifunction marvels they are. But whether that had much to do with Oracle's efforts or just market and technology momentum remains open to question.

But like almost every large corporate IT-focused software and hardware company, Oracle had totally missed the device connectivity revolution that was occurring which Java - along with IPv6 in 2000 and 6LoWPAN in 2007 - helped kick start.

Now that everyone's attention is focused on the renamed connectivity revolution called the Internet of Things, Oracle this week has made an impressive bid to retake much of that lost ground.

After two years in development, Oracle Corp. rolled out its Java 8 implementation with a little bit of something for every segment of the connected environment, including servers, mobiles, embedded and IoT.

I have been looking over the wealth of information it has provided out and have made some tentative guesses about what is offering and how successful this roll out will make it in the new Internet of Things.

But first here is a summary of what the announceent consists, the services it will provide, and the support that will provided. In two words - impressive and overwhelming.

The Java 8 platform rollout includes its  Java Platform, Standard Edition 8 (Java SE 8); Java Platform, Micro Edition 8 (Java ME 8); and the related releases of Oracle's Java Embedded products.

At the core of the massive rollout is the the availability of JDK 8, a production-ready implementation of the Java SE 8 Platform Specification, which was recently approved through the Java Community Process (JCP). This release includes what the company is calling the largest upgrade to the Java programming model since the platform was introduced in 1996, and was, the company emphasizes, was developed collaboratively in the OpenJDK Community.

For embedded developers, especially those interested in joining the race toward the Internet of Things, it will be well worth their while to take a close look at  Oracle Java SE Embedded 8, which leverages the new Java SE 8 features and is optimized for mid to high end embedded systems. Both Oracle JDK 8 and Oracle Java SE Embedded 8 are now available to download.

Interestingly during most of the presentations this week, Oracle's engineers and spokepeople emphasized that Java SE 8 and Java ME 8 are on a strong convergence path, with Java ME 8 scheduled for availability later this spring.

Key to what I think will be Oracle's strategy in the still-coalescing Internet of Things market is its emphasis on providing a common Java 8 tool and language framework  across embedded devices, desktops, data centers and the cloud. This will appeal especially to large enterprises who are now trying to figure out how to manage the flood of information about product status and behavior that result when the IoT finally comes to fruition.

Java SE 8 features

Among other things, Java SE 8 has implemented a number of enhancements that it says enhance developer productivity through reduced boilerplate code, improved collections and annotations, simpler parallel programming models and more efficient use of modern, multi-core processors.

Key aspects of  JDK 8 that deserve particular attention related to their use in embedded designs are:
1)  the JSR 335 Lambda Expressions for the Java Programming Language) which is aimed at supporting programming in a multicore environment by adding closures and related features to the Java language.

2) the Nashorn JavaScript Engine,  which is a lightweight high-performance JavaScript runtime in Java with a native JVM. Important in some embedded IoT designs that depend on it, this improvement will allow developers develop free standing JavaScript applications using the jrunscript command-line tool.

3) a set of Compact Profiles which are essentially a subset of the Java SE for applications that run on small devices. An additional benefit is that this new feature will likely make possible faster download times for apps that bundle their own Java runtime.

Also interesting to me is  the removal of the "permanent generation" from the HotSpot Java Virtual Machine (JVM).  I do not know how useful this will be to embedded developers, but the move does address  in a small way the impact on deterministic performance represented by Java's memory management scheme.

New client Java features and enhancements are also available 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.

Java SE Embedded
Oracle developers in the new Java SE Embedded 8 have aimed at providing a development platform for embedded devices and the Internet of Things (IoT) that will appeal both to IoT new commers and those who have been doing it for quite a while. A complete list of the new features and capabilities of Oracle Java SE Embedded 8 is available here.

What caught my eye is that they have created 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, some using as little as 10 MB static footprint and 16 MB of RAM - 2 to 3 times less than Oracle Java SE Embedded 7.

Java ME 8
Also targeting intelligent devices in the consumer IoT space where small footprint and deterministic response is not as necessary, 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.

 Oracle Java ME Embedded 8 Early Access 2 is now available as a binary runtime for Qualcomm 6270T (ARM9) Development Platform, Raspberry Pi (ARM11) and ST Microelectronics STM32F4DISCOVERY (ARM Cortex-M4).

Java ME SDK 8 Early Access 2 is now available to support development of Java ME 8 Early Access-based applications on an emulation runtime for Windows 7, as well supported hardware platforms.

To make sure that this broad announcement takes and to build excitement amongst as broad a segment of developers as is possible,  the company's OracleTechnology Network (OTN) is sponsoring an IoT Developer Challenge, giving developers an opportunity to win one of 12 trips to JavaOne 2014 by creating a Java Embedded application.

In addition, up to six student winners will receive laptops and certification vouchers. The deadline to submit video and project code is May 30, 2014. See Official Rules for details.

OTN is also providing seven free Java Embedded training sessions in March and April. Registered attendees get a chance to win a Raspberry Pi starter bundle.

There is a lot in this announcement to absorb and to think about as it relates not only to traditional embedded applications and mobile designs, in the new IoT space as well.  It is coming late back into the embedded IoT game, but from what I have seen so far, Oracle - and Java, will be a player there as well.

Look over the what Oracle has offered up and let me know what you think here in your comments or in blogs or more technical analyses you might want to post and publish on Embedded.com. 

Embedded.com Site Editor Bernard Cole is also editor of the twice-a-week Embedded.com newsletters as well as a partner in the TechRite Associates editorial services consultancy. He welcomes your feedback. Send an email to bccole@acm.org, or call 928-525-9087.

See more articles and column like this one on Embedded.com. Sign up for subscriptions and newsletters. Copyright © 2014 UBM--All rights reserved.

Loading comments...

Parts Search Datasheets.com

KNOWLEDGE CENTER