Java Annotated Monthly – August 2016

This month’s Java Annotated Monthly is so much more than Java.  Not only do we take a look at what’s happening in the community and what’s the latest on upcoming versions, we have a chance to touch on news for Scala, Clojure, JRuby, Groovy and, of course, Kotlin. And in a slight departure from our usual technical content, we take a look at some news relevant to strengthening team skills with a focus on code reviews.


Community & Ecosystem

As mentioned briefly in last month’s Annotated Monthly, Oracle has countered claims of lack of interest in Java EE by announcing they’re rebooting it for the cloud. One of the alternative plans to move Java EE forward is discussed in more detail on the vJUG July podcast.

Touching on both the Java EE uncertainty and the Oracle/Google lawsuit, is this high-level view of state of the Java ecosystem. The conclusion, of course, is Java is (still) Not Dead. Which is fine, since we ignore Java is Dead articles anyway, but there are concerns around whether Java it can attract new developers.


One great route for beginner into Java is via Android, and Google has just launched a new programming course for beginners.

Java 10+

Oracle has plans to standardise JDK command line options with JEP 293.

Java 9

One of the features in Java 9 that has the potential to have a big impact on the way Java developers work is the Java REPL. But often overlooked is that the Streams API is getting some updates too, including a (much needed) way to end infinite streams. Remember you can download the latest build of Java SE 9 (we’re currently on build 129).

Java 8

As always, there’s some great stuff for understanding Java 8, like this presentation on understanding Stream performance, and some guidance on using Timezones. We published some Java 8 Top Tips with a focus on IntelliJ features (not surprisingly), and posted a complimentary article for Upsource focusing on code reviewing Java 8 code.

For non-version specific tips, there are some community-contributed productivity tips, useful JIT optimisation techniques, and seven of the best Java answers.

JVM Languages

Java continues to sit in one of the top spots in various language rankings, but its not the only player on the JVM.

Scala is a firm favourite, and big things are planned for it.

There’s a great primer on JRuby in this month’s Java Magazine. Ruby continues to be in the top 5 or 10 programming languages, and combined with the power of the JVM it’s a compelling option.

Clojure is established as a language which is really good for solving certain problems.  As with any language, there can be some frustration.

Kotlin too continues to evolve, and you can play a part in this evolution if you want.

It may feel like Groovy is less trendy than it once was, barely scraping into the top 20, but it still does some things really well. Spock is still a very compelling choice for testing, for reasons I’ve written about in the past.


While we’re on the subject of testing, JUnit 5 M2 is out to play with now.  Take a look at the new features, and remember that it’s supported in IntelliJ IDEA 2016.2.

Testing is not just about unit testing, understanding the different types of tests is fundamental to being able to test microservices effectively.

Code Reviews

Having mentioned code reviews earlier, now seems like a good time to share my backlog of articles on code review, code quality and related not-always-technical content. Performing a code review is about so much more than formatting or naming, or even catching bugs. To be a good reviewer, not only should we be able to identify code smells and stay up to date on coding guidelines, we should strive towards proficiency, which includes understanding the bigger picture, knowing how to give and receive feedback, trying different approaches to communicating taking into account the human cost of tech debt and knowing how to pick your battles.

Having the right tools makes the code review process so much easier. Gratuitous Promotion Alert: JetBrains makes Upsource for code reviews.


Java SE 8u101 (security update, recommended) and 8u102 (security plus bug fixes & enhancements) are your current latest versions.

Spring Boot 1.4 is now out. You’ll remember from last month’s Developer Productivity Report Spring Boot’s astonishing adoption rates. If you haven’t played with Spring Boot yet, now is a great time to try it out.

And Finally…

Last month our big news was the IntelliJ 2016.2 release. Since then we’ve had a chance to run webinars on the new features and the updated support for Spring, and posted about the JUnit 5 support.

Complete this form and get Java Annotated Monthly delivered fresh to your email
image description