News

Java Annotated Monthly – November 2021

Hello! As usual, early November brings news and tips as well as community-related updates, helpful advice, and noteworthy opinions on the evolving technologies and frameworks around Java.

Java Annotated Monthly Logo with coffee mug and JetBrains logo

In this edition of Annotated Monthly, we’ll talk about Java 17, possible shorter LTS cycles, and the future of Java. There is also an interesting article about different ways to network in the Java community and educate yourself about JUGs.

The posts in the non-Java-related section ask many questions, leaving you to think about simpler language to use for UIs, less pairing in daily tasks, talks about work during coffee breaks, the challenges of live presentations in Zoom, and much more.

Let’s get to it!

Java News

What Does the Future Hold for Java? – Check out the transcript of the InfoQ talk about new features in Java, performance improvements, various ‘free’ builds of OpenJDK, and the development of Foojay.io. Check out the list of panelists – it’s really impressive!

Episode 20 “Java 17 is Here! Part 2” – This podcast hosts Brian Goetz, Java architect at Oracle, and Stuart Marks, Java/JDK/OpenJDK developer at Oracle. What do they discuss? There is no surprise here – the latest release of Java 17.

Report a Bug or Request a Feature – If you want to contribute to improving Java, here’s how to start. You can report bugs or share your feedback if you feel some features could work better.

String.format() 3x faster in Java 17 – This article explains why you can construct complex Strings with String.format() three times faster with Java 17 and where it will help you. You will also learn when you should use format() instead of the plain String addition with +.

Java Is Still Free 3.0.0 (Oct 2021) – This blog post explains the changes to Oracle JDK distribution and support. It contains a short version explaining how to get OpenJDK builds for free along with a much longer, more detailed version.

Oracle Proposes Shorter Java LTS Cycle of Two YearsMark Reinhold, the chief Java architect of the Java Platform Group at Oracle, offered to shorten the Java Long-Term Support (LTS) cadence from three to two years. He claims it will help deliver new Java features faster and increase the attractiveness of non-LTS releases that launch every six months. What do you think?

ZGC | What’s new in JDK 17 – This blog post contains a list of new features for the Z Garbage Collector in Java 17.

Project status summary – If you follow JEPs like Primitive Objects, Unified Primitives, and Universal Generics, this post will provide some new information.

JEP 421: Deprecate Finalization for Removal – Get ready for the Finalization option to be disabled by default in the next release, and removed for good later on.

Java Tutorials & Tips

Updating Java: A Guide to Java Modernization – If you’ve been looking for a clear and concise guide on upgrading to Java 17, here it is! It will give you an overview of Java’s past and a sneak peek into its future, describe the newest OpenJDK features and enhancements, and help you decide on the update.

The State of Java 2021 – Watch an hour-long discussion about the current state of Java with some incredible speakers!

Java’s Optional Does Not Supplant All Traditional if-null-else or if-not-null-else Checks – The blog post raises the question of when the use of Optionals is justified and when there is no advantage to using it.

Java Records – See how you can use Java Records with JPA and jOOQ.

The art of long-term support and what LTS means for the Java ecosystem – Get to know more about the difference between the six-month feature-release model and LTS.

Education, JUGs, and hack days: The evolving Java community ecosystem – If you’ve been searching for possible ways to network in the Java community, this article is a must-read.

Amber, Lambda, Loom, Panama, Valhalla: The major named Java projects – Get a general overview of the most popular Java projects that come with unique names.

Gavin Bierman explains pattern matching for switch, a Java 17 preview – Gavin Bierman, a consulting member of the Oracle technical staff based in the UK, talks about one of the most highly-anticipated features that Java 17 brings.

Canonical Orders – Is there a preferred order for modifiers? If so, do you follow it?

The best way to use Java Records with JPA and Hibernate – See the examples of how Java Records work with JPA and Hibernate.

JDK 17: Long Term Support and Great New Features – Join the webinar on the new Java 17 features with Simon Ritter, a Java Champion and twice awarded Java Rockstar status at JavaOne.

Keep Jazz Bands Valid with Java 17 – Check out what great features Java 17 offers for modeling domains with Algebraic Data Types (ADTs).

Faster Charset Encoding – The author offers a technical read about a trick to speed up CharsetEncoders.

Languages, Frameworks, Libraries, and Technologies

‘DevOps for Dummies’ author Emily Freeman introduces a revolutionary model for modern software development – Tired of the SDLC model? Emily Freeman challenges the status quo and introduces her new software model that could revolutionize DevOps. Will this approach instead bring a longed-for, unavoidable update?

Practical API Design at Netflix, Part 1: Using Protobuf FieldMask – The article introduces the concept of Protobuf FieldMask and shows how and why it is used at Netflix Studio Engineering. Spoiler alert: it helps make APIs more robust and service implementations more efficient. Read this article to learn more.

VMware Overhauls Spring 6 & Spring Boot 3 for Another Decade – See the recent news on the release of Spring Framework 6 and Spring Boot 3 from Kristen Strem, senior communications manager at VMware.

JDKMon – You can download this useful little tool to detect all the JDKs installed on your machine and be notified about new updates for each OpenJDK distribution found.

Eclipse Temurin 17 Available – Get to know the new features in Eclipse Temurin 17.

How to Deploy a Spring Boot App on AWS ECS Cluster – This is a comprehensive step-by-step tutorial on creating and configuring an ECS Cluster and deploying a Docker image with a Spring Boot Application to it.

PubSub to BigQuery: How to Build a Data Pipeline Using Dataflow, Apache Beam, and Java – The author shares their experience collecting data from Google PubSub and loading it into different BigQuery tables. Read this blog if you want to learn about the challenges involved in this process.

​​Difference between @RequestMapping and @GetMapping in Spring MVC?

Spring @Bean Example? What does the @Bean annotation do in Spring Framework?

The 8 best IntelliJ plugins for improving your coding experience – Yet another set of plugins for IntelliJ IDEA that can help you simplify your daily tasks and customize the IDE to your needs.

The unparalleled design of Eclipse Collections – If you ever plan to use Eclipse Collections and want to dig into the parallel algorithms, this article is great. It contains various methods to use parallelism in Eclipse Collections and statistics.

Constructing coroutine scope, Coroutine scope functions – These are some interesting articles about Kotlin coroutines.

All About Opt-In Annotations – Read this article if you want to know everything about the Kotlin opt-in APIs. You’ll learn to create and use them and see great real-life examples.

LIVE Programming a Web Crawler – Programming Polyglot #000: Kotlin – Prepare for a 5-hour marathon of live programming in Kotlin!

Culture & Community

How we’re silencing women in tech, one tweet at a time – Why do women deliberately choose to stay silent about technical topics? Read this blog to find out how Twitter users are eager to tear influential women down when they do not keep their hard tech opinions to themselves.

Is AGILE Better Than KANBAN? – In his short video, Dave Farley is trying to look at two different yet somewhat similar approaches to organizing the software development process. Do you agree with his thoughts about the pros and cons of both Agile and Kanban?

Coming to the Stage – Over the past two years, live meetups have become surreal, and the memories about them have faded as if they’ve never happened. We quickly shifted to online conferences and black boxes of Zoom instead of a real audience. So, is it easier for the speakers to present their ideas in front of a computer? Read this post to learn what the author has to say about it.

The Mortifying Ordeal of Pairing All Day – The author shares his story of professional and mental burn-out after being part of the “pairing culture” in software development. Have you ever heard of it?

The Coffee ‘Break’ Conundrum – Does a coffee break for IT specialists equal work time? Is a “breakthrough” possible without a true “break”? Find out what answers the author has for these questions.

The Most Heated Tech Job Market in History: Advice for Software Engineers – Though it may seem that every other person is an aspiring software developer, the market still appears to be hot. If you want to make the most out of it, the advice from this article can help.

Three Types Of Personalities Prone To Burnout And What To Do If You Identify – Identify if you are among personality types who are more likely to burn out and learn to take your stand against burnout with the suggestions from this blog post.

The Handy List of Human Words – The article attempts to convince people who write for customers and businesses to keep their language as simple as possible. To make this work, the author shares a list of words and phrases that will keep your UI copy and texts more human and direct.

Three Ingredients for Great Content – From Helen’s blog post, you can learn to never underestimate your expertise in content creation. Though it might seem that the things you know are pretty obvious for your audience, this isn’t always true. So, don’t hesitate to share!

And Finally

A round-up of blog posts and videos from IntelliJ IDEA and JetBrains:

If you have any interesting or useful Java/JVM news to share via Java Annotated Monthly, leave a comment or email us (java-advocates@jetbrains.com).

image description