Java Annotated Monthly – July 2017
The start of June brought the disappointing news that we’d have to wait longer for Java 9, so July and August news won’t be all about the big release. However, there’s still plenty of Java 9 news, the usual handful of interesting Design and Architecture links, and this month a massive amount of Android and Kotlin news as we try to catch up with everything from Google I/O.
We may be disappointed that Java 9 won’t be out this month, but we know that it takes time to create something that’s good for everyone. At least the JCP EC has voted in favour of the updated Jigsaw spec, so it’s full steam ahead to the new September release date.
- The road to Java 9: The current status
- Oracle Defends the Java Module System
- jhsdb: A New Tool for JDK 9
- Immutable Collections in Java 9
- Ben Evans on Java 9 (podcast, discussing the upcoming release of Java 9, Jigsaw’s impact, and Java performance issues)
- Real World Java 9, QCon London (video, focus on Reactive Streams) & Real World Java 9, GOTO Amsterdam (video, more info on Jigsaw & other Java 9 features) – JetBrains’ Trisha Gee shows Java 9 features and how to use them in IntelliJ IDEA.
Java In General
- Java: Development and Evolution (DZone’s latest guide, featuring a short article on Java 8 features from me, Trisha)
- Spring Boot: From Zero to REST (video series)
- JVM Anatomy Park (blog series exploring the JVM under the covers)
- From Concurrent to Parallel (video: excellent presentation from Brian Goetz going into details about programming for performance in Java)
- Concurrency in Action: Using Java’s CompletableFuture With Work Manager
- Spring Data JPA Auditing
- CDI Events overview
- The RedMonk Programming Language Rankings: June 2017 (Java is doing rather well in second place).
- Avoiding Benchmarking Pitfalls on the JVM (not a new article, but the next section has a link to microbenchmarks, so this seems relevant)
Android (& Kotlin)
This Android section always ends up being a bit Kotlin-heavy. It might surprise you to learn this isn’t a JetBrains bias, but represents the Android news feeds that go into creating this newsletter. It always leaves me with a bit of a quandary about whether Kotlin links belong in an Android, Kotlin, or JVM section, or if it even belongs in a “Java” newsletter at all, so expect (as usual) to find the Kotlin news boiled down to a minimum and spread around a bit.
- Beginning Android Development Part One: Installing Android Studio (very comprehensive guide)
- Functional Programming for Android Developers – Part 1, Part 2 and Part 3.
- Exploring Kotlin’s hidden costs — Part 1, Part 2 and Part 3 (written from the point of view of an Android developer, but not really Android-specific).
- Kotlin’s hidden costs – Benchmarks (a set of JMH benchmarks to look at the impact of the hidden costs – some surprising results, but always be wary of microbenchmarks).
- A first walk into Kotlin coroutines on Android
- Lessons learned while converting to Kotlin with Android Studio
- Kotlin: It’s the little things
- RxJava — The first 3 patterns
- Architecture Components – I’m Not a Purist But…
- Android Things for beginners
- Understanding the Gradle Wrapper (not just applicable to Android developers)
- (Gradle) Implementation vs API dependency
- How to speed up your slow Gradle builds (Android-specific)
- Using Gradle Script Kotlin for Android
- Random Musings on the O Developer Preview 3
- Downloadable Fonts
Other JVM News & Links
There’s still some fallout from the Google I/O Kotlin announcement which I wanted to share, but to vaguely attempt to reduce the JetBrains-language-bias, I’ve specifically looked for and shared other interesting non-Java news.
- Five Things That Make Kotlin Interesting
- What First-Party Kotlin Support Means for Your Business
- On Strategies to apply Kotlin to existing Java code
- Play 2.6.0 released
- Gradle 4.1 milestone 1 is available (includes runtime compatibility with Java 9, and I can’t wait to try it out).
- Static code analysis in a Grails app with CodeNarc (I highly recommend using CodeNarc with your Groovy code, particularly if you’re new to Groovy).
- Spocklight: Using the Old Method (old() is an awesome feature of Spock I wasn’t aware of, here’s how it works under the hood).
- Panel: What’s Next for Our Programming Languages? (video, very well received panel at QCon London earlier this year).
Design and Architecture
- TDD Harms Architecture (by Bob Martin. Spoiler: the clickbait title is not necessarily the conclusion of the article).
- Self Contained Systems (SCS): Microservices Done Right
- Microservices, Monoliths, and Modularity
- The Evolution of Scalable Microservices
- Latency Sensitive Microservices (video)
- Naming Matters
- The Strange Relationship between Duplication and Coupling
- Hyperproductive development (or: one explanation for the so-called 10x developer, and how to work in an environment that has one).
- How to Read Code (Eight Things to Remember) (great advice)
- Gang of Four Patterns in Kotlin
It’s summertime! We’re not going to be at any more conferences in July and August. Keep an eye out for the September conference rush.
- The 2017.2 Public Preview is available.
- Check out our new Working with Gradle in IntelliJ IDEA video.
- Kotlin native 0.3 is out.
- Our friends at RebelLabs are running their annual Java Tools and Technologies Survey, feel free to take part (not that I’m suggesting we overwhelm it with IntelliJ IDEA users…)