IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – August 2023
The August edition of Java Annotated Monthly is here! As usual, we’ve selected a collection of fascinating articles covering the latest Java-related news, tech updates, AI and machine learning innovations, and more. We’re thrilled to share the exciting news of the recent release of IntelliJ IDEA 2023.2, along with helpful tutorials on working with flaky tests and gaining insights into security vulnerabilities. Stay tuned for an informative read that will get you up to speed on all things Java!
Java News
Java News Roundup – 1, 2, 3, 4 – Keep abreast of the latest updates in the world of Java.
What’s New in JDK 20? – JDK 20, the latest release of the Java SE Platform, continues to improve on the preview and incubator features unveiled in earlier versions. Listen to this podcast to learn more about these improvements.
JEP 441: Transforming Java with Pattern Matching for switch – JEP 441, Pattern Matching for switch, has been promoted from Targeted to Completed for JDK 21. Check out this short tutorial on how to use it.
Java Enhances Z Garbage Collector with Generational Capabilities – JEP 439, Generational ZGC, will also be Completed in JDK 21. This JEP proposes to improve application performance by extending the Z Garbage Collector (ZGC) to maintain separate generations for young and old objects. This will allow ZGC to collect young objects, which tend to die young, more frequently.
Modern Cryptography in OpenJDK: Introduction of Key Encapsulation Mechanisms API – This JEP introduces an API for Key Encapsulation Mechanisms (KEMs), a modern encryption technique for securing symmetric keys using public key cryptography.
What’s Arriving for JFR in JDK 21 – Inside Java Newscast #53 – Watch this video to learn more about several key changes coming to JDK Flight Recorder (JFR) in JDK 21, including one that will simplify the analysis of JFR recordings from the command line.
Java Tutorials and Tips
Breaking java.lang.String – In this blog post, Wouter Coekaerts explores a race condition in the java.lang.String constructor to create a malformed String instance.
Java 21 − Java 17 = 42 JEPs view – This article features convenient tables listing the features that will be delivered in Java 18, 19, 20, and 21.
Java 21 is no LTS Version – Inside Java Newscast #52 – In this video, Nicolai Parlog explains why OpenJDK offers neither builds nor support for JDK 21, while vendors do.
Seven Reasons You Should Not Ignore Flaky Tests – Trisha Gee explains why you should care about flaky tests and prioritize fixing them.
Using JDK21 Preview Features and/or Incubator Classes – If you want to play around with the fancy new preview features in JDK 21 or some classes from the incubator, Karl Heinz Marbaise explains how to configure Apache Maven to do exactly that.
Exploring the Depths of Java: A Comprehensive Conversation with Jakob Jenkov, Part II – This is the second installment of A N M Bazlur Rahman’s conversation with Jakob Jenkov, a leading figure in the world of Java. This time he shares his thoughts on the challenges of modern software development, the impact of artificial intelligence on developers, and much more.
Java’s Startup Booster: CDS – Watch this video for a look at CDS, a feature within the JVM that can improve startup performance. You’ll learn about its architecture in order to understand how it can achieve this goal.
Effective Coding with Java Observability – Roni Dover describes what observability success looks like for developers, offering real-life examples of how observability can enhance coding.
Java vs. Other Programming Languages: A Comparative Analysis – In this article, Saba Qureshi claims that Java excels in portability and reliability, Python in versatility and simplicity, JavaScript in web development, C++ in performance, and Go in efficiency. Do you agree?
Languages, Frameworks, Libraries, and Technologies
This week in Spring – 1, 2, 3, 4, – Stay up to date with the most recent news about Spring.
Building intelligent Spring Apps with Azure OpenAI – In this article, you’ll explore the fusion of Spring and OpenAI in a sample Spring chatbot app that provides Q&A-style assistance and responds to natural language questions.
New in Spring 6.1: RestClient – Spring Framework 6.1 M2 introduces RestClient, a new synchronous HTTP client. As the name suggests, RestClient combines the fluent API of WebClient with the infrastructure of RestTemplate.
Dynamic Entity Graphs in Spring Data JPA – In this article, you will learn about JPA entity graphs and a library that enables the generation and application of entity graphs.
A Bootiful Podcast: JetBrains’ Anton Arhipov on IntelliJ, Java, and so much more – In this amazing Spring IO show recorded live in Barcelona, Spain, Josh Long talks to JetBrains Developer Advocate Anton Arhipov.
A Bootiful Podcast: Spring Framework and Spring Boot legend Stéphane Nicoll on A Bootiful Podcast – Spring team legend Stéphane Nicoll talks about Spring Boot, Apache Maven, Gradle, and so much more.
AI, ML, Data Engineering News Round Up: Claude 2, Stable Doodle, CM3leon, Llama 2, Azure and xAI – Check out the most recent updates in the fields of data science, machine learning, and artificial intelligence.
EU AI Act: The Regulatory Framework on the Usage of Machine Learning in the European Union – Find out more about the EU AI Act, on which lawmakers are expected to reach an agreement by the end of 2023 and which will form the foundation for future AI regulation.
Podcast: Ben Dart on 2023 Trends in Robotics at ICRA – In this podcast, Ben Dart and Roland Meertens discuss the latest robotics technology as showcased at the International Conference on Robotics and Automation (ICRA).
Tomato Architecture – A Pragmatic Approach to Software Design – Does the “Tomato” in “Tomato Architecture” actually mean anything? And what are the coding practices and architectural decisions that will help you keep things simple, restore some sanity, and prevent over-engineering? Find the answers in this article.
Gathering the streams – Viktor Klang explores an extensible intermediate operation called Stream::gather.
Understanding Security Vulnerabilities: A First Step in Preventing Attacks – Shai Almog explains a number of common security vulnerabilities and attacks, along with ways to prevent them.
My Top Ten Tips for Peer Review – Why should you bother to review code, and how can you do it well? See what Dave Ogle has to say about these topics.
Using Maven Efficiently – Follow the tips in this video to avoid overuse and non-ideal practices when using Maven.
Building Boba AI – Farooq Ali shares his experience of building an experimental AI co-pilot for product strategy and generative ideation that he has dubbed “Boba”.
The Curious Case of Different Runtimes – René Schwietzke presents the case of a performance problem encountered while finalizing his team’s software and provides details about the eventual solution. Check out the story and see if it can help you as well.
How to customize the HibernateTypesContributor from Hypersistence Utils – In this article by Vlad Mihalcea, you’ll learn how to customize HibernateTypesContributor from Hypersistence Utils so that you can disable all types or filter out certain ones.
Reactive Database Access on the JVM – This article by Nicolas Fränkel explores reactive programming, going into detail about Hibernate Reactive, Spring Data R2DBC, and jOOQ.
Introduction to Mojo Programming Language – Mojo is a newly unveiled programming language that combines the simplicity of Python with the speed and memory security of Rust. It is at an early stage of development and offers an online playground where you can explore its features. Learn more about what makes it unique in this post.
JetBrains Unveils AI Assistant for IntelliJ-based IDEs and .NET Tools – Find out more about the newly introduced AI Assistant feature that comes with AI chat for solving code issues, as well as the ability to generate code, commit messages, and documentation.
Building for Failure: Best Practices for Easy Production Debugging – How do you create an application that’s easier to debug? How do you build a system so that, when it fails, you’re able to work out what went wrong? Shai Almog offers answers to these questions in this article and the complementary video.
Kotlin Corner
Kotlin roadmap – Take a look at the Kotlin team’s recently updated key priorities
Introducing Kotlin Notebook – Learn about the Kotlin Notebook plugin for IntelliJ IDEA and find out how to install it.
Wow! Refactoring with JetBrains AI Assistant – Watch as Duncan McGregor tries out the newly introduced AI Assistant.
Conferences and Events
Here are some events that you might want to attend in person or online in August:
JConf Guatemala – August 5, Guatemala City, Guatemala.
JakartaOne Livestream – Portuguese 2023 – August 15, online.
SpringOne – August 21–24, Las Vegas, Nevada, USA.
KotlinConf 2024 Tickets Are Now Available! – Don’t miss your chance to get tickets to next year’s premier Kotlin conference.
Culture and Community
Article: Autism at the Workplace: Autism Coaching as a Methodology – This article offers some insightful advice for developers who have autism and for people who work with them.
Charting the Course of Java: An Insightful Conversation with Java Champion, Sebastian Daschner – In this insightful interview, renowned Java Champion, Oracle Developer Champion, and JavaOne Rockstar Sebastian Daschner shares his journey in the field of Java enterprise software development.
Busting Myths, Building Futures: A Conversation with Cay Horstmann on Java and Machine Learning – Cay Horstmann, a prominent figure in the Java community, covers various topics like Java’s potential in data science and machine learning, the current state of the software development industry, the impact of AI on developers, and his perspective on learning by practice with immediate feedback.
How to Share Your Work With a Video or Podcast – If you’re considering creating a personal podcast, this article is a great starting point.
Advice for Remote and Hybrid Leaders – In this podcast, Shane Hastie, Lead Editor for Culture and Methods, speaks to Julien Danjou of Mergify about creating good remote and hybrid working environments.
And Finally…
Here are July’s most important news stories about IntelliJ IDEA, along with some helpful tutorials:
IntelliJ IDEA 2023.2 Is Out! – This release brings the following exciting new features: AI Assistant (Limited access), in-editor performance hints, and GitLab integration. These and many other features are detailed in this article.
Overview of IntelliJ IDEA 2023 – If you prefer to see new features in action instead of reading about them, this video is for you.
New Livestream: Faster code feedback loops with OpenTelemetry – In this upcoming webinar, you’ll explore Digma Continuous Feedback, a free plugin on JetBrains Marketplace that collects OpenTelemetry data for live code feedback. We’ll demonstrate how you can analyze your application while running and debugging, without altering any code, and showcase code examples illustrating how continuous feedback offers linting, code lens, and analytics to enhance your coding practices.
GitLab Support in JetBrains IDEs – Read this article to learn more about the recent GitLab integration in IntelliJ IDEA, which is available from version 2023.2.
Contributing to open source software: Creating a pull request – In this video, Marit van Dijk demonstrates how to create an open-source pull request.
IntelliJ IDEA: Customizing color scheme – Mala Gupta shows you how to customize the IDE’s color schemes. Not only does this help you to tweak your favorite theme, but it also allows you to understand your code base better.
History of Gradle Delegation Process in IntelliJ IDEA – Elena Kozlova shares a brief historical overview of the integration of Gradle with IntelliJ IDEA and the delegation process implemented inside the IDE.
Language Server Protocol for Plugin Developers – The Language Server Protocol (LSP), developed by Microsoft, facilitates communication between Language Servers and development tools. With the 2023.2 releases, JetBrains’ IntelliJ-based IDEs offer public access to the LSP API. In this article, Jakub Chrzanowski shows how to integrate with a Language Server, explore its features and documentation, and check the status of LSP support in the IDEs.
That’s it for today!
If you have any content suggestions for the next Java Annotated Monthly, feel free to contact us via email or Twitter. Remember, article suggestions must be submitted by August 20.
All previous JAM issues are conveniently archived on our dedicated website. If you missed an intriguing blog post or article, you can easily find it there. Happy exploring!