Java Annotated Monthly – October 2021

Hello, and welcome to the October selection of the last month’s most exciting stories from the Java world.

Java Annotated Monthly Logo with coffee mug and JetBrains logo

It is no secret that September was all about Java 17 – the latest long-term support (LTS) release after Java 11. We were very excited about the event, and we’ve prepared an impressive collection of materials about this highly-anticipated release. In this blog post, you’ll find information about its major features, performance improvements, security enhancements, and more.

Without further ado, let’s take a look!

Java News

The Arrival of Java 17 – Java 17 is here; download it now! This blog post sums up pretty much everything you may want to know about the latest release and provides helpful links for further investigation.

Introducing the Free Java License – As of Java 17, Oracle is providing the Oracle JDK for free, including quarterly security updates. Read this article for the full details of what is and is not covered with the free license.

It’s time to move your applications to Java 17. Here’s why—and how – Java 17 is a new Long-Term-Support (LTS) version of Java, preceded by the older, popular Java 8 and Java 11. Migration to the newest version can be time-consuming and tricky. Here’s some advice that you may find helpful.

Moving Java Forward Even Faster – What would you think about having LTS Java releases once every 2 years instead of every 3?

Java 17 arrives with long-term support: What’s new, and is it falling behind Kotlin?; Java 17: What’s New, Removed and Preview in JDK 17 – Learn about the highlights of the release, why it is time to upgrade, and how hard the process will be.

Java 17 is here: 14 JEPs with exciting new language and JVM features – There can never be enough information about the new Java 17 features! Track the significant evolution of new features from Java 11 to today, or dig deeper for more technical details by following the links in this article.

Java 17, the Next Long-Term Support Release, is Now Available – This blog post touches upon two controversial JEPs – 403 and 411 – and describes some features planned for Java 18.

JDK 17 Security Enhancements – This article collects the most prominent security updates introduced in Java 17. The changes are presented in groups, including Crypto, PKI, TLS, Kerberos, XML Signature, and Security Manager.

How much faster is Java 17? – Take a look at several charts that show the performance improvements of Java 17 in comparison to the previous versions.

“Works with OpenJDK” Campaign – If your project is OpenJDK-friendly, join the campaign and add a special badge. This post contains a link for downloading the badge.

Better Random Number Generation in Java 17 – Java 17 brings an improved random generator API, including a new hierarchy of interfaces, new algorithms, extended and refactored random number classes, and more.

JEP 413: Code Snippets in Java API Documentation – An interesting new feature is planned for Java 18. A @snippet tag will be introduced for JavaDoc’s Standard Doclet to simplify the inclusion of example source code in API documentation.

Java Tutorials & Tips

The best HotSpot JVM options and switches for Java 11 through Java 17 – Take in some valuable tips on fine-tuning the highly configurable systems within the OpenJDK HotSpot JVM.

A practical look at JEP-412 in JDK17 with libsodium – JDK 17 features a new incubator, the Foreign Function & Memory API. This blog post offers some comprehensive examples to illuminate this topic.

Modern file input/output with the Java Path API and Files helper methodsBen Evans shares his extensive knowledge of the Path API for file I/O facilities.

String Tapas Redux: Beyond mere string interpolation – This is a really interesting behind-the-scenes look at how language features are designed. Jim Laskey and Brian Goetz discuss the best way to implement String Interpolation (e.g. like Kotlin’s “$x plus $y equals ${x + y}” syntax) for Java.

Languages, Frameworks, Libraries, and Technologies

Jakarta EE 10 Release Plan – The release plan for Jakarta EE 10 is now available. You can read the release scope and keep track of the work in progress in this blog post.

Docker is Updating and Extending Our Product Subscriptions – Docker is changing its subscription policy for the Personal, Pro, and Team plans and adding the new Docker Business subscription. Read this article to learn more. No worries, the free version is still available!

How to replace Docker with Podman on a Mac – This post contains some helpful instructions for setting up an alternative to Docker for working with containers.

Blog Series: The missing Java data structures no one ever told you about – Donald Raab, the creator of Eclipse Collections and its most active contributor, shares links to several articles about this Java collections framework.

Kotlin at Ten. Interview with JetBrains’ Roman Elizarov – Roman Elizarov, Project Lead for Kotlin at JetBrains, explains the language’s rapid success and talks about its unique features, Kotlin’s potential to evolve in the next ten years, and much more.

Meet our open-source champions: Kevin Sutter, JakartaEE Advocate – This is an inspiring series of blog posts devoted to top-notch talents behind open-source development. This time, Kevin Sutter, co-lead of both the Jakarta EE ™ Platform project and the MicroProfile™ project at the Eclipse Foundation, discusses his career path, describes how to work with Jakarta EE from the inside, and offers tips for those who are interested in getting involved in open source development.

8 Debugging Tips for IntelliJ IDEA Users You Never Knew Existed

Accelerated Kotlin build times with Kotlin Symbol Processing 1.0 – Kotlin Symbol Processing (KSP) 1.0 has been released. See what’s changed.

Build Function Chains Using Composition in Kotlin – Check out this great tutorial to learn about function chaining, aggregation, and compose modifiers, and to build a function-chaining compositional pattern.

Mocking Matchers API – If you’ve ever tried using a mocking library and encountered the difficulties of defining an API surface for a library, this article can be of use.

Job and children awaiting in Kotlin coroutines – This article defines jobs in the context of coroutines and provides numerous examples of how they are used.

Thinking functionally in Kotlin – The article shows how you can apply a functional approach to developing an app with Kotlin.

LivePlugin – Get a very cool plugin for IntelliJ IDEA to create plugins at runtime using Kotlin and Groovy.

Culture & Community

Code review — bad, expensive, ineffective (in most cases) – People usually speak about code reviews in a positive way, but here is a different take. Give it a look and decide which side you are on.

The case of the lost id field – It turns out, mystery is a genre that’s well-suited to IT specialists. This thrilling post about a null id field proves me right. But no spoilers!

Netflix Builds a Reliable, Scalable Platform with Event Sourcing, MQTT and Alpakka-Kafka – This article briefly sums up why Netflix eventually chose Alpakka-Kafka for implementing stream processing pipelines. You can check out the original 15-minute read by Netflix linked in this post for a more detailed explanation.

What Would Happen If We Slowed Down? – Would the professional world fall apart if knowledge workers dialed down their productivity just a little bit? 27 people share their thoughts about this idea. Do you think slow productivity would work for you?

How to stay ahead of the curve as a developer – In the vibrant, dynamically changing world of technology, FOMO is very real! When you feel like you’re missing out on some shiny new technology, the anxiety you get can be overwhelming. It is high time to decide whether you want to stay ahead of the curve. If you do, Helen Scott can help you identify which shiny new things are worthy of your time, and she offers tips for planning your professional development. If this topic interests you, listen to our recent Coffee Club podcast.

The Real Way to Figure Out How Smart Someone Is – Are looking intelligent and being smart synonymous? Can you buy or hack your mental abilities and out-Google your peers? Is intelligence gender-biased? Read on to test your knowledge of these fascinating topics.

Older Employees and Younger Managers – Have you noticed that the IT community is getting younger, with lots of ambitious young leaders being promoted in short periods of time? What challenges do such managers present to their older colleagues? Find out in this blog post.

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 (

image description