Devoxx 2013 – Takeaways From The Java Keynote

Last time I wrote about my thoughts on Java FX at Devoxx after watching a variety of talks, you can read about them here. This time I give you my takeaways from the Java Keynotes. Wednesday marked the start of the Devoxx 2013 Conference. So what better way to kick of a conference revolving around Java then to have Mark Reinhold host a keynote speech on Java 8 and what lies beyond. The keynote was absolutely packed and overflowed into the adjacent room, but I was lucky enough to snag a seat in the main conference!

A wild Duchess appears!

Here are my takeaways from the Java 8 and Beyond keynote.

Lambdas Are Here And They Are Awesome

Lambdas, Java’s implementation of closures, have really impressed me. At face value lambdas seem to just be syntactic sugar for anonymous inner-classes, but they are much more than that. I won’t delve too far into the details, but there are significant differences in the way that bytecode handles lambdas as opposed to how it handles inner classes, which make lambdas much more efficient at run time. Which everyone likes.

The Streams API

java.util.stream offers two major features; First of all, like lambdas, it seeks to remove verbosity of performing operations on collections of data. Also like lambdas, this may be a jarring change from the code structure you’re used to. For example, say we have a list of Person objects and we want to print out the names of people who are over 65. In previous versions of Java we would write something like:

for(Person p : people){
    if(p.getAge() > 65){
        System.out.println(p.getName);
    }
}

Using Java 8 we can write it like this:

people.stream()
    .filter(p -> p.getAge() > 65)
    .forEach(p -> System.out.println(p.getName()));

While this example is rather small, it demonstrates the clarity of streams. Each method has a distinct and obvious function, as opposed to the comparatively more obscure, nested nature of loops. The second feature is that it allows for easy parallelism with .parrallelStream(), with the caveat that the cost to set up parallel streams may not be as efficient as just sequentially processing the data.

The Internet of Things, is a Thing

Embedded devices are everywhere these days, many of which running Java in one form or another. Oracle have been working on bringing Java SE to embedded devices, believing that the “internet of things will take off in a huge way” and lowering the barrier to entry for java developers, as well as allowing for portable code will allow for the Internet of Things to evolve even faster. The device at the forefront of the Internet of Things is most definitely the Raspberry Pi. So far at Devoxx I’ve seen it used to monitor a car data in realtime, transformed into a tablet device, a breathalyser and powering a chess playing robot, amongst other things.

Java is Not Dead

At the start of the keynote, Mark Reinhold declared that “No technology can survive by standing still” and he is absolutely correct. With the new features introduced into Java 8 and what’s in store for Java 9 and beyond, I think it’s safe to say that Java is certainly taking a step in to the future. If you’re a first-time reader, or simply want to be notified when we post new articles and updates, you can keep up to date by social media (Twitter, Facebook and Google+) or the Blog RSS.

Ebook Page Link

The following two tabs change content below.
Simon Lissack is a developer at IDR Solutions, working on JavaFX, Android and the Cloud Conversion service.

Related Posts:

Simon

About Simon Lissack

Simon Lissack is a developer at IDR Solutions, working on JavaFX, Android and the Cloud Conversion service.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>