Java Annotated Monthly – March 2017

We’ve taken on board suggestions from last month’s experiment and this month we’re trying to please everyone – what could possibly go wrong? February is a short month so you might expect a shortage of news, but far from it!  It’s a big year for releases, with Java 9 and Java EE 8 on their way, and it’s never too early to get up to speed on what’s coming.


Java 9

For anyone who doubted whether we’d ever see Java 9, it’s finally entering the First Bug Fixing Round. That means it’s “complete” enough that we can more-or-less rely on which features will be in it, and start playing with them – IntelliJ IDEA 2017.1 supports Java 9.  Since Java 9 introduces the Reactive Streams API as part of the language, there is some overlap in conversations around Java 9 and Reactive Programming, a theme I will be presenting on next week at QCon London.

The release is close enough that conversations around current Java includes overlap between features from 8 and 9:

Of course development on the language doesn’t stop at Java 9, we can get a heads-up on possible features for future releases too:

Java In General

New and interesting is all very well, but it doesn’t help us in the day job.  It’s arguably more important to get better at what we do all the time.

As usual, we’re still finding out plenty about Java 8 features, including embracing a more functional approach to development:

Reactive Programming styles really are here to stay with Java 9, so it’s worth getting up to speed now:

Enterprise Java

2016 certainly was an… interesting… time for Java EE, leading to a lot of speculation about the Future of Java in the Enterprise. Microprofile certainly seems to be gaining momentum, but then Java EE 8 is also back on the move.  Exciting times…


This month I’m blatantly showing my preference for a focus on automated testing, design principles and self-improvement rather than showcasing any specific frameworks or libraries. But I am throwing in RxJava, since this seems to be well-used in the Android space, and I included Reactive Streams in the vanilla Java section.

Design and Architecture

Yes, we need to stay up to date on technologies and so forth, but understanding architectural patterns and design approaches will be valuable regardless of current trends. Probably. Except the Singleton pattern, you can just go ahead and ignore that.

It feels like Microservices has crossed the chasm and we’re now talking about when and why to use it, not just what it is. There’s a trend of talking about Event Sourcing and Domain Driven Design in this context, familiarity with these topics is important:


JetBrains is going to be at several events this month. Firstly, QCon London next week: we’ll have a booth there (come and say “Hi”!), I’m running the Java track and speaking on it, and I’ve outlined an example conference schedule for Java developers. Secondly, we also have a booth at the very first DevoxxUS, and I’ll be presenting on Java 9 features and how they’re supported in IntelliJ IDEA.

And Finally


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

image description