Although it shipped a week ago, Oracle formally launched Java 8 with major fanfare, including a highly polished Webcast March 25 that delved into key features of the new platform.
As part of the most significant Java technology release by Oracle, the company hosted a Java 8 launch Webcast to tout 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.
Members of the Oracle Java development team, as well as other industry leaders, took part in the festivities. In addition, Oracle made more than 30 technical videos covering Java SE 8, Java ME 8, Java Embedded and the Internet of Things available on demand.
“This release is a giant leap forward for Java,” said Mark Reinhold, chief architect of the Java Platform Group at Oracle, in the Webcast. “The introduction of Lambda Expressions and the related Streams API is the largest upgrade to the Java Standard Edition Platform. It is the largest upgrade to the programming model ever done.
“By making it convenient to express code as data, we have enabled the creation of more powerful APIs, which in turn can improve your productivity by reducing boilerplate code and providing a simpler model for leveraging today’s multicore processors,” he said.
However, Java 8 is more than about lambdas; it also includes a new and vastly improved date and time API, Reinhold said.
And Java SE 8 can run on a wider range of hardware configurations than ever before, he noted. “It includes a set of compact profiles that are official well-defined subsets of the platform, the smallest of which fits into just 11MB of memory and is ideal for use in embedded computers,” Reinhold said. “For even smaller devices, and in particular for the rapidly evolving Internet of things (IoT), Java 8 includes the simultaneous release of Java Micro Edition 8. This major upgrade brings modern language features and APIs to the Java ME platform yet retains the ability to fit an implementation into just a few hundred kilobytes.”
In addition, Oracle announced 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 the largest upgrade to the Java programming model since the platform was introduced in 1996. JDK 8 was developed collaboratively in the OpenJDK Community.
“Java is the global standard for developing and delivering applications everywhere—from small devices to the cloud,” said Nandini Ramani, vice president of development for the Java Platform at Oracle, in a statement. “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. The Java 8 launch will showcase the innovative features of Java SE 8 and Java ME 8 and demonstrate how the latest Java platform releases can revolutionize application development, harmonize enterprise IT and empower the Internet of Things.”
Oracle also announced Oracle Java SE Embedded 8, which leverages the new Java SE 8 features and is optimized for mid- to high-end embedded systems. Oracle JDK 8 and Oracle Java SE Embedded 8 are now available to download. Java SE 8 and Java ME 8 are on a strong convergence path, with Java ME 8 scheduled for availability later this spring, Oracle said.
“ARM and Oracle are working together to define and integrate technology components to make the Internet of Things more viable for businesses and developers,” said Ian Drew, chief marketing officer and executive vice president of business development at ARM, in a statement. “The Oracle JDK 8 release showcases our collaboration that will drive standards and an open ecosystem enabling developers to create applications from smart IoT devices to servers.”
With a consistent Java 8 platform across embedded devices, desktops, data centers and the cloud, customers can deploy applications faster, process and analyze in-flight data and act on events as quickly as they occur, the company said. Leveraging Java’s cross-platform benefits, the Oracle Java Embedded implementations are designed to increase hardware flexibility and platform choice, allow easier application portability and help extend product lifecycles.
Oracle Festivities Big on New Java 8 Language Strengths
Oracle officials said the Java SE 8 release is the result of industrywide 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 8 is the best community-driven Java version so far,” said Bruno Souza, founding member of the SouJava Java user group in Brazil.
Java SE 8 enables enhanced developer productivity and significant application performance increases through reduced boilerplate code, improved collections and annotations, simpler parallel programming models and more efficient use of modern, multicore processors.
As stated, the key features of JDK 8 are Project Lambda (JSR 335), 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). A complete list of the new features and capabilities of JDK 8 is available here.
Adam Messinger, CTO of Twitter, who was formerly vice president of development at Oracle, congratulated Reinhold and Oracle on shipping Java 8, noting that he was “proud to be a little part of it.”
“Twitter’s made a big investment in the JVM [Java Virtual Machine], and we’ve moved almost all of our server-side infrastructure onto the JVM,” Messinger said. “And we do it with both Java and Scala internally. So the work that we started in Java 7 with invokedynamic and that you’ve continued in Java 8 to make the JVM really a true multi-language platform is really important to us at Twitter.
“I think the work you’ve done with putting lambdas into the language continues this long tradition of Java cherry picking really great, powerful features, and doing it parsimoniously so the language stays clean, and putting them into the core language. I think that’s great. We’ve seen a lot of power with that in Scala. And I think what you’ve done with Nashorn and getting a pretty different language to run on top of the VM, undoubtedly that makes the VM better as a multi-language platform for all languages. We don’t use any server-side JavaScript at Twitter, but if you look at the popularity of Node.js you can see it’s something people want to do.”
John Rose, an Oracle software architect who worked on invokedynamic—an instruction that helps dynamic languages run on the JVM—and on Nashorn, explained why Nashorn is special.
“Nashorn is a complete rewrite from blank paper implementation of JavaScript,” Rose said. “The reason it’s different from 500 other JavaScript implementations is it is written on top of the modern JVM architecture. It is fully standards compliant so it’s a real JavaScript, but the thing that makes it unique is that it operates with the JVM’s JIT [Just In Time compiler] and garbage collector and concurrency and thread control, which means that you can write JavaScript code, but it scales fully and performs fully on the JVM. Then you can also bounce over and call all the Java APIs straight from JavaScript. So there’s a mixed language interoperability story that’s really powerful and fun to use.”
“We’re still looking over all the Java 8 features and doing some planning on how several of them fit in,” Todd Williams, vice president of technology and co-founder at Genuitec, told eWEEK. “However, what seems to be the most interesting thing to us is the inclusion of the Nashorn JavaScript engine. The impact that this addition will have on future architectural decisions could give rise to some very interesting innovations.
“Also, the ability to easily obtain a rigorous parse tree for JavaScript will empower tool developers to deliver some very compelling Java-plus-JavaScript environments for those new architectures,” he said. “Genuitec will be more actively targeting that emerging combined environment in our next major release of MyEclipse in June.”
For his part, Messinger noted that one of the reasons people like Scala is for the functional features. “And one of the things about that is conciseness of certain expressions,” he said. “So lambda does capture a lot of that.
“In a lot of ways, Java and Scala are closer together than they were before,” he said. “So that will help us because it will be easier to switch from one language to another. One of the reasons we moved to Java in the first place was for performance. We saw some performance uplifts of 8x. We haven’t done a lot of work with Java 8 in Twitter just yet, but it makes me think we’ll see an uplift as well.”
Oracle Festivities Big on New Java 8 Language Strengths
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 HTML5 support.
Backward compatibility of Java SE 8 with previous versions of the platform preserves the skill sets of current Java software developers and helps to protect Java technology investments.
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 to take advantage of the latest Java features, as well as enhanced support for HTML5.
Moreover, the Eclipse team has been working on Java SE 8 support for almost two years and is on schedule to have an update release coinciding with the Java SE 8 launch as a feature patch for the current Kepler SR2. The team has announced that Eclipse will also include support for Java SE 8 in the upcoming “Luna” release scheduled for June 2014.
As Reinhold stated, Oracle Java SE Embedded 8 provides a development platform for embedded devices and the Internet of things that includes the flexibility, portability and features of Java SE 8. A complete list of the new features and capabilities of Oracle Java SE Embedded 8 is available here.
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 using as little as 10MB of static footprint and 16MB of RAM, two to three times smaller than Oracle Java SE Embedded 7.
Oracle Java SE Embedded 8 is available for many configurations, including Linux on ARM, x86 and PPC, and is optimized for popular community boards such as the Raspberry Pi, as well as commercial systems-on-chip (SoC), such as the Freescale i.MX 6 Series. Java SE Embedded tools are also available to create customized, space-optimized JREs for embedded platforms.
Java is an ideal platform for intelligent devices and an optimal foundation for developers to build new services for the IoT.
The new 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.
The significant enhancements in Java ME 8 are designed to deliver faster application performance, which is especially important on less powerful devices. With this release, Java ME and Java SE are converging, enabling a more consistent developer experience and more code reuse across the platforms.
The new Java language enhancements in Java ME 8 leverage recent Java SE features to allow developers to write cleaner, more efficient code that can be deployed across both platforms, and the new embedded-specific capabilities of Java ME 8 can help to further shorten and simplify development cycles.
Oracle Java ME Embedded 8 will be the Oracle implementation of the Java ME 8 standard. 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.
“The release of Java SE 8 demonstrates the innovation driven by the ongoing collaboration between IBM, Oracle and other members of the Java community in OpenJDK,” said John Duimovich, Distinguished Engineer at IBM, in a statement. “Java SE 8 provides enterprise customers with significant gains in productivity, scalability and maintainability, and further demonstrates that they can continue to rely on Java to grow their business.”
Perhaps Jim Gough, associate leader of the London Java Community, sums it up best. “I think the best thing about Java 8 is the fact it’s going to be a revolutionary release; it’s the first release that’s really incorporated community,” he said.