This is an important moment for Java. The general availability of Java 8 – more specifically of Java 8 SE, Embedded, (and shortly ME as well) and FX (and in the wake of all this the Hotspot JVM and NetBeans 8.0). This release is about language evolution certainly – with Lambda expressions and the Stream API as clear highlights. But it is about much more. It is as if Java went through a mid-life crisis and has now re-emerged with new zeal and focus, a new purpose in life.
Java 8 themes include
- language evolution
- the position of the JVM and the relationship between Java and other JVM languages
- native user interfaces with Java – coming of age of JavaFX
- platform-focus – from write-once-run-anywhere to write-once-run-in-a-select-number-of-places
- the “flexible” JVM that steplessly scales from rich desktop to small device or gradual flow from SE to Embedded and ME
- the future of the Java community and the Java platform
On the day of the release of Java 8 – March 18th 2014 – two Dutch companies, specializing in Oracle and Java, joined forces to organize the (first) Java 8 Launch Event in The Netherlands. First8 and AMIS presented to a 100+ audience an overview of the big picture as well as the deep dive details around Java 8 (click on the link to start this presentation). While we were in the middle of our presentation, the official announcement from Oracle about the immediate and general availability of Java 8 was published. I believe our timing (or Oracle’s) was pretty impressive. Read the blog article by First8 about the Java 8 launch and our event here.
- Lambda expressions – their reason for being, their implementation and the way they will change the way we create Java code
- The Stream API – a new way of working with collections that is both elegant and potentially very high performant, leveraging both Lambda expressions and the concurrency facilities of the JVM
- The new Date and Time API – based on Joda Time – modernizing the archaic way of working with Dates and Times in Java before this release
- Miscellaneous improvements, for example character sets and encoding, security, compact profiles, improved Type Inference, new ways of applying Annotations
First part of the launch event consisted of the strategic overview. It discussed the themes mentioned overhead. The history of Java, from when it was still called Oak, to the peak of its popularity and momentum (somewhere around 2007), the challenges facing Sun Microsystems and the time it took Oracle to re-vitalize the Java platform. It outlines the current status of the platform and community as well as the road ahead of us.
The central conclusion of this overview is that Java 8 will prove to be turning point. Java 7 in comparison was just a sign of life. Java 8 is an important next step. A rationalization – what is most relevant to do – that involves making choices. Java will not run natively on tablets and smart phones – is the strategic direction. Which does not preclude a number of embedded JVM initiatives (such as ADF Mobile) nor some Java-to-iOS compiling frameworks (such as RoboVM). Applets are no longer meant to be. HTML 5 and all modern browsers can do have taken away most of the justification for using Applets. The impossible security challenge with hundreds of millions of computer illiterate users having to update Java-browser-plugins is another important reason for Oracle to drop Applets as a viable future direction.
Oracle merges its JVMs – JRockit and Hotspot – into a single best-of-both-worlds JVM, based on the Hotspot JVM and enriched with many JRockit goodies, including the Flight Recorder and Mission Control tooling.
You can find the slides for this part of the presentation on SlideShare.
Blog article by First8 on Java 8 and Launnch event: http://www.first8.nl/blog/java8/.
Oracle’s General Availability announcement for Java 8 SE: https://blogs.oracle.com/java/entry/java_se_8_is_now
Oracle’s General Availability announcement for Java 8 SE Emebedded: https://blogs.oracle.com/java/entry/java_se_embedded_8
Download for NetBeans 8.0.
Blog article: Introduction to Lambda expressions.
Blog article: 8 cool things about the Stream API
Very good Java 8 overview by Markus Eisele (in German): Alles-auf-8-Java-SE-8-ist-da
JavaFX 8 – enhancements