What an exciting month May was! The Java Community Process was flung into the spotlight as the Executive Committee voted against Jigsaw, raising questions like: how does this impact Java 9? What happens next? And what is the JCP anyway? Add to this the announcement of some exciting Android-related news, and we have a very full Java Annotated Monthly!
Well, dear reader, you probably won’t be surprised after reading the articles covered in last month’s Java Annotated Monthly that the Java Community Process Executive Committee voted “no” on the Java Platform Module System public review ballot. Let’s see what the aftermath is:
- JCP EC Votes against the Java Platform Module System (overview of the situation and what it means)
- EC Rejects Jigsaw (summary of the votes and EC members’ comments, and a short overview of what happens next)
- Is Jigsaw Dead? Not quite (great summary of what the “no” vote really means)
- Explanation of our “No” vote on JSR 376 (covers a number of the community concerns and makes predictions about what happens next)
- Martijn Verburg on the JCP EC “No” Vote for the Java Platform Module System (podcast with written transcript)
- Java SE 9 – JPMS automatic modules (what they are and why they cause concern)
- Oracle rethinks modular Java plan after Red Hat’s objections (specifically automatic module names)
- Oracle has a plan to make Java 9 migration easier (as a result of conversations with the community, there’s a proposal to Allow illegal reflective access by default in JDK 9)
More general news and information about Java 9:
- Java 9 Besides Modules (covers a lot of the Java 9 features)
- Wrapping up Java 9 New Features (features covered overlap with the previous article)
- Real World Java 9 (video – modules, the reactive streams API, and a handful of “other” Java 9 features)
- Modules in One Lesson (video)
- Migrating to Modules (video)
- Top Resources to Get Started with Java 9
Java In General
This month’s General Java links include Java-specific design and architecture, plus performance.
- The Genius of the Law of Demeter (recommended reading: many code bases violate the Law of Demeter and it causes all sorts of mess)
- Handling ‘state’ in Java WebSocket applications
- Java8 – Methods in Interfaces (a reminder of how default methods on interfaces work)
- Java Enum Lookup by Name or Field Without Throwing Exceptions
- A Little Lazy Lambda Tutorial
- Under The Hood with the JVM’s Automatic Resource Management (Why is finalize bad? Why try-with-resources is better)
- Building, Packaging, and Distributing Java EE Applications in 2017 (Part 2) (or: how relevant is the application server today?)
- Clean Code from the trenches – Validation
- Low Latency Trading Architecture at LMAX Exchange (video)
The big Android news, at least from JetBrains’ point of view, is that Kotlin is now an officially supported language for Android. For this reason, the Android section of Annotated Monthly may be a tiny bit heavier on Kotlin than normal.
- Google I/O Keynote (video)
- Everything New About Android From Google I/O
- Google I/O 2017 — Useful Android Links
- Kotlin on Android. Now official (what this means and FAQs)
- Why Kotlin? (with a focus on “for Android”)
- Why you should totally switch to Kotlin
- Why Kotlin Is Better Than Whatever Language You’re Using
- Kotlin vs. Java: First Impressions Using Kotlin for a Commercial Android Project
- Square Open Source ♥s Kotlin
Of course there’s more Android news than just Google I/O and Kotlin.
- Android app architecture reloaded (architecture components)
- Weighing in on the Holy Architecture War — My take on“Architecture Components”
- The 30 Coolest Android Libraries from Spring 2017
- Make or break… with Gradle (or: how to set up Gradle to automate code checks)
- Android shortcuts and tricks to boost up your productivity!
- Dagger 2: Android Modules
In recent months we’ve moved away from covering a wide range of JVM languages in Java Annotated Monthly to focus on Java-the-language (mostly because it’s impossible to cover all the news for all the JVM languages). This month I’m making an exception for Kotlin given the Google I/O news. If you feel the need to get up to speed on JetBrains’ JVM language, here are some pointers.
- Introduction to Kotlin (video)
- Kotlin and Java EE: Part One – From Java to Kotlin
- Kotlin and Java EE: Part Two – Having Fun with Plugins
- Migrate a Gradle Plugin from Groovy to Kotlin
- How “Effective Java” may have influenced the design of Kotlin — Part 1
- How “Effective Java” may have influenced the design of Kotlin — Part 2
- Kotlin for Data Science
- Nothing (else) matters in Kotlin
- Tail recursion and how to use it in Kotlin
Come and say hello, ask us questions or give feedback!
- 8-9 June: GeekOut, Tallinn
- 12-15 June: DevOpsCon, Berlin
- 13-14 June: GOTO Amsterdam (no booth, Trisha and Hadi are both presenting)
- 14-15 June: White Nights, St. Petersburg
- 20-22 June: Velocity & Fluent, San Jose
- The 2017.2 EAP has smarter control flow analysis and a new Run Dashboard for Spring Boot
- Check out our new Working with Maven in IntelliJ IDEA video.