IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – April 2018
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.
Java
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.
Java Future
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
Software Development
- 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.
Events
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.
And Finally
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.