Java Annotated Monthly – May 2017

After a few, blissful, drama-free issues, this month we look into the tension between the community and the Stewards of Java (again), this time the topic is Modularity.  Feedback from the community is always a Good Thing to help improve the platform, but when Jigsaw was due for release with Java 9 in two months it gets a little more… interesting. Java 9 isn’t the only news, as usual we’re covering Java’s future, linking to blogs and tutorials for Java (including Android) code and design, and we’ve added a whole new section for Java Performance this month.


Java 9

Probably the most important news of the month is community concerns around Jigsaw (modularity for Java), the big ticket item for Java 9.  The first article in this section is a long, in-depth critique of the approach taken by Oracle.

This is an unusual situation for Java, and it’s not clear yet what it means.  Will Java 9 be pushed back again so it can be amended further? Or will the community prefer to simply get their hands on the solution that’s been in progress for so long? Voting on JSR 376 (Jigsaw) closes on 8 May so we’ll keep you updated.

Of course there’s more Java 9 news and background.

Note: if you were previously downloading your Early Access copies of Java 9 from you need to update your bookmarks to

Java Future

News about Java EE 8 has been quiet lately (again), but it’s not due to lack of progress.

Java In General

A mixed offering of Java-specific but otherwise-difficult-to-classify articles.


Android O continues to be a big talking point, and as usual we throw in a bunch of articles on good practice which may be applicable to all Java developers.

Design and Architecture

This month we have a mix of OO design patterns, approaches like Domain Driven Design and Test Driven Design, and take a look at a critique of OO, to understand not only its strengths but its weaknesses.


It’s harder to find the time to watch presentations than to skim documents, but QCon London had some great presentations on performance that have just been published and well worth a look:


JetBrains is going to be at a number of events in May. Come and say hello, ask us questions or give feedback at our booth:

And Finally


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

Comments below can no longer be edited.

2 Responses to Java Annotated Monthly – May 2017

  1. Avatar

    Natalia says:

    May 8, 2017

    Your comment for an article “Java 8 Vs. Java 9: Get Ready for a New Era (very business-focused, may be useful to wave at “management”. Be aware the content is out of date, e.g. the Money API was pulled out of Java 9 a while ago)” isn’t true.
    In the original article, it is said that: “It is believed the JDK 9 will not include the JSON or money and currency API’s, but they are still being considered for a JDK 10.”
    So I don’t see the point in saying it’s outdated.

    • Trisha Gee

      Trisha Gee says:

      May 8, 2017

      The content is out of date from a developer point-of-view. For example:

      “It is believed the JDK 9 will not include the JSON or money and currency API’s” – it is not simply believed, it is known. The Lightweight JSON API was dropped from Java 9 at the end of 2014. It has been known for over 2 years that it won’t be in Java 9. Mentioning it in the context of Java 9, even to say “it is being considered for Java 10”, is misleading and not useful, there’s little value in thinking about these Java features right now. I don’t have a specific date for when the Money API was dropped, but it has been out of scope for a similar length of time.

      “Microbenchmarks: Now, the performance of very specific and small pieces of code can be measured with a standardized method. The Java harness (JMH) for analyzing down to nanoseconds is unique to Java 9.” – this is also very misleading, as JMH is NOT being included as part of Java 9. What has been done is behind the scenes the JDK developers have developed microbenchmarks using JMH to check the performance of the code. While this is a Good Thing and an excellent model for any team to follow, it has zero direct impact on a developer’s day-to-day job. Mentioning it in the context of the Java 9 release simply adds confusion, not clarity.

      I stand by my original comment – this is a good article for management to read to understand the benefits of Java 9 at a high level, but for a developer to understand what’s actually in Java 9 (or what is NOT in it), it’s at best vague and at worst misleading. For Java developers to understand the features in Java 9, there are much better articles.

      For a full, non-ambiguous list of Java 9 features, see

Discover more