This month it’s me, Trisha Gee, back at the helm of Java Annotated Monthly! The big news this last month was the release of Java 10, so soon after Java 9 that the hype still hasn’t died down from the release of Jigsaw. This edition will contain the usual roundup of Java news, including Java 10, and a bunch of interesting tutorials and titbits for Java and related languages, frameworks and libraries.
It’s Trisha back at the helm, and you know I like not only to bring you the news, but also to link to articles that teach/remind us of techniques/principles/facts Java developers should probably know.
- Firstly, and most importantly, Java 10 is out!
- 10 new features in Java 10
- Features in Java 10 – a good summary of what’s interesting in Java 10 for developers that’s not simply a run down of the JEP numbers.
- This article shows an interesting edge case that is “solved” by using var.
- If you’re going to leap into using var, take a look at Style Guidelines for Local Variable Type Inference in Java
- To see Java 10 in action, watch my Java 10 live webinar on 5th April
- JPMS modules for library developers – negative benefits – now people have been living and working with Java 9, opinions are coming out on potential issues
- The baby and the bathwater – an exploration of the previous article with some counterpoints and thoughts on where to go from here.
- Think you are moving to JDK 9 sometime next year? Think again. – it’s been said before, but it’s worth repeating: now Java 10 is out, Java 9 is already end of life. Yes, really. So it’s Java 8 or Java 10.
- String concatenation in Java 9 (part 1): Untangling invokeDynamic – a low-level look at some of the features of Java 9.
- String concatenation in Java 9 (part 2): Conversion confusion
- Concurrent Java: Low scalability, the risk of deadlocks or garbage creation, you can not avoid all – tradeoffs you need to consider in concurrent code
- Correct Reflective Access to Interface Default Methods in Java 8, 9, 10 – an interesting article that demonstrates (among other things) how some of the changes in Java 9 affect what you can and cannot do in the language.
- Infinite Streams in Java 8 and 9 – with a nice mention of some of the new Stream methods in Java 9 that don’t normally get enough love.
- Mastering Java 8 Streams – Part 1 (video) – covers filter, map, distinct, and limit.
- Mastering Java 8 Streams – Part 2 (video) – covers flatMap, sorted,
- The Developer’s Guide to Collections: Sets – if you’re not super-excited by Maths you can skim the stuff at the beginning. But understanding data structures is fundamental to getting good performance from a system.
- Escape Analysis in the HotSpot JIT Compiler – low level details of how HotSpot works to optimise code.
- 3 Things Every Java Developer Should Stop Doing – some good advice here, particularly around the use of null.
With Java 10 out of the door, it’s time to look at what’s next.
- Brian Goetz Speaks to InfoQ on Data Classes for Java
- JavaFX and the Future of Java Client Technologies – JavaFX will not be bundled with the JDK from Java 11
- Java Nestmates Makes Progress – interesting to see how Java-the-language does attempt to address its technical debt
- Remember you can already download and play with Java 11.
Languages, Frameworks and Libraries
- Java EE Becomes Jakarta EE – we mentioned this last month
- Servlet and Reactive Stacks in Spring Framework 5 – this explores the two architecture choices for Spring web applications
- Reactive Spring: Setting up a REST API – Josh Long has written a tutorial on this for Java Magazine this month
- Doing stuff with Spring WebFlux
- Spring Security 5: The Reactive Parts (video)
- The RedMonk Programming Language Rankings: January 2018 – Kotlin still racing up the rankings, Java holding steady right near the top
- StackOverflow’s Developer Survey Results 2018 (Kotlin makes an appearance high up the most-loved languages).
- Rust for Java Devs – Creating functions – since Rust topped the chart of most-loved languages in the last link, here’s a quick primer for Java developers.
- Variance, Immutability, and Strictness in Kotlin
- Reproducible Builds in Java – using Gradle
- Becoming a 10x Developer – If you read just one article from this month’s Annotated Monthly, please let it be this one. Spoiler: it’s not (just) about being good at technology.
- Overly defensive programming – …means you haven’t thought it through.
- 10 books every web developer should read to increase their software IQ – and they’re not all the ones you’d expect.
April is a very busy month! Come and say hello at the booth, see our presentations and ask us any questions.
- 6-7 Apr: JPoint, Moscow, we have a booth and a number of presenters giving talks
- 10-11 Apr: JAX DevOps, London
- 16-17 Apr: ScalaSphere, Krakow, we have a booth and several presentations
- 18-20 Apr: Devoxx France, Paris
- 20-22 Apr: QCon Beijing, a booth and talks
- 24-27 Apr: Great Indian Developer Summit, Bangalore, we have a booth and talks
- 3-5 Oct: KotlinConf, Amsterdam with tickets selling fast, we’re giving you a very early heads-up on our European Kotlin conference.
News and topics from the IntelliJ IDEA blog and YouTube channel that you may have missed:
- IntelliJ IDEA 2018.1 is out! And it comes with advanced support for Java 9 modules, and support for partial Git commits (video).
- Join me, Trisha Gee, this week for a live webinar on Java 10 and IntelliJ IDEA.