IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – January 2024
Happy New Year and welcome to the January edition of Java Annotated Monthly! As we step into 2024, we’re excited to bring you the latest news and tutorials from the tech world. This issue’s highlight is the release of IntelliJ IDEA 2023.3 – a real game-changer that introduces an AI Assistant feature that revolutionizes coding efficiency.
However, this month’s edition is not just about new tools, as we’ll also be looking back at the significant developments made in Java and Spring over the past year.
Additionally, you’ll be able to read the thoughts of several developers on the evolving software engineering landscape. The role of software engineers is constantly changing, and they explore how this dynamism impacts skills, responsibilities, and expectations in today’s tech industry.
Join us as we navigate through these exciting times in the world of Java and software development.
Java News
Java Highlights of 2023 – Inside Java Newscast #60 – Discover the brightest moments of Java in 2023 together with Nicolai Parlog.
Java News Roundup 1, 2, 3, 4 – Stay up-to-date with the latest Java news and updates.
Java 22 Unpacking – Inside Java Newscast #59 – JDK 22, is set for release on March 19, 2024, but its feature set has already been finalized. Check out this video by Nicolai Parlog to see what Java 22 will bring.
An overview of JDK 22 features – JDK 22 entered Rampdown Phase One, which makes this an excellent moment to take a peek at the JEPs awaiting us in this feature release.
Java Tutorials and Tips
AutoCloseable HttpClient – Sip of Java – HttpClient has been updated to be AutoCloseable in Java 21. Have a look at what that means in this article.
Useful & Unknown Java Features – Piotr Minkowski has revealed his personal list of favorite but lesser-known Java features. These include the delay queue, period formatting in days, stamped lock, concurrent accumulators, and others.
Tracking Java Native Memory With JDK Flight Recorder – The JVM is convenient for monitoring Java applications’ runtime behavior and identifying performance issues. And with the recently introduced native memory tracking (NMT) feature, it is getting even better.
Stream API Evolution: A Closer Look at JEP 461’s Stream Gatherers – This JEP proposes to enhance the Stream API to support custom intermediate operations. Read this blog for more information.
JDK 21: The GCs keep getting better – The Java Platform has significantly enhanced its performance since JDK 8. In this post, Stefan Johansson demonstrates these improvements using SPECjbb® 20151 as a benchmark.
Uniform handling of failure in switch – Brian Goetz is exploring a refinement of switch to incorporate failure handling.
Twelve Days of Pattern Matching – In this article, Cay Horstmann presents six puzzlers and six principles for a better understanding of the latest pattern-matching features.
Locale Updates in Java 21 – Sip of Java – Localizing applications can be tricky, often leading to subtle bugs. Fortunately, JDK 21 introduced several updates to improve this process for developers. This article describes the most important changes!
Clement Escoffier presents an interesting series of articles about virtual threads:
- Containerizing virtual thread applications
- When Quarkus meets Virtual Threads
- Writing CRUD applications using virtual threads
- Testing virtual thread applications
Deprecated Features in Java 18 thru 21 – Sip of Java – Billy Korando reviews key features that have been deprecated or removed and alternatives for them.
Writing C Code in Java – Johannes Bechberger provides some examples of using the Foreign Function & Memory API (also called Project Panama) which is explained in detail in JEP 454.
IntelliJ IDEA: Selectively Commit Changes to a File – Marit van Dijk demonstrates that in IntelliJ IDEA (version 2023.3), you have the ability to selectively commit specific chunks or lines from a file. This feature is especially handy when dealing with various edits, such as new features and small fixes, within the same file.
Foojay Podcast #38: Java in the Cloud – Listen to this podcast to learn if the recent evolutions in OpenJDK, as well as ongoing related projects, will make Java a full Cloud member.
Ensuring compatibility with two Elasticsearch versions (or more) in automated tests – Piotr Przybyl demonstrates how to use Testcontainers for automating checks with real dependencies, eliminating the need for manual testing when dependencies are updated.
Revolutionising Java Collections: The Advent of Sequenced Collections in Java 21 –
JEP 431 is an important advancement for Java, improving the collections framework. This makes Java more powerful and easier to use for developers, allowing them to work with ordered collections more effectively and write better code. More details are provided in this article.
Don’t Use Checked Exceptions – In this article, you will explore the reasons behind the use of unchecked and checked exceptions in Java, examining both their advantages and drawbacks. Michael Krimgen intends to offer a fair and balanced perspective on the role and impact of checked exceptions, rather than simply criticizing the concept.
Languages, Frameworks, Libraries, and Technologies
This Year in Spring – 2023 – Here are some of the biggest themes related to Spring in the year 2023.
This Week in Spring 1, 2, 3 – The most crucial Spring news for December is collected here.
The best way to map multiple entities on the same table – Vlad Mihalcea illustrates the optimal approach for mapping multiple entities to the same table and the benefits of this method.
A Bootiful Podcast: Spring Security legend Laura Spilca joins us to talk Spring Authorization Server and upgrading to Spring Boot 3 – Josh Long talks to Laur Spilca, a renowned figure in the Spring Security community, discussing various topics including security, OAuth, and more.
Spring creator Rod Johnson and Oracle vice president Heather VanCura – Josh Long hosts Spring creator and investor Rod Johnson and the Oracle VP Heather VanCura, discussing her new book Developer Career Masterplan, co-authored with Java expert Bruno Souza. The book focuses on guiding developers towards senior roles and further career advancement.
Handling security vulnerabilities in Spring Boot – Brian Vermeer explains how to find vulnerabilities in Spring Boot, remediate vulnerable packages, update Spring Boot starter, and scan your Spring Boot applications with Snyk.
OpenAI Publishes GPT Prompt Engineering Guide – The guide outlines six effective strategies for optimizing responses from GPT models, including clear instructions, reference texts, breaking down complex tasks, using external tools, and systematic testing.
Five Apache projects you probably didn’t know about – In this post, Nicolas Fränkel introduces some Apache projects that are less well-known than HTTPD or Kafka.
The Theory of Debugging – In an upcoming series of posts, Shai Almog will try to explain the theory behind debugging. Grasping this theory can enhance your problem-solving approach and deepen code understanding.
Epithet, Briefly – Brian McCallister demonstrates the use of a custom ssh-agent that in turn uses modern authentication services like OIDC, Keycloak, Okta, or Google Sign-In for user authentication.
Low-code Development Productivity: “Is winter coming” for code-based technologies? – João Varajão, António Trigo, and Miguel Almeida present findings from their experiments, providing compelling evidence for the dominance of low-code technologies in mainstream software development in the near to medium future.
Kotlin Corner
News Digest: Kotlin Multiplatform Special – Catch up on all the highlights of the Kotlin Multiplatform ecosystem.
Kotlin for WebAssembly Goes Alpha – Kotlin/Wasm – the newest Kotlin Multiplatform target – is now ready for you to try, though it still has many areas that are works in progress. Community feedback is vital to guide and prioritize the ongoing evolution of Kotlin/Wasm.
AWS SDK for Kotlin is now generally available – AWS has officially released the AWS SDK for Kotlin, and it is now available for customers to deploy in production environments.
Build Apps for iOS, Android, and Desktop With Compose Multiplatform – Sebastian Aigner and Marton Braun demonstrate how you can use Compose Multiplatform for app creation. You can find the finished project built during this stream here.
Reactive Programming With Spring Boot and Kotlin Coroutines by Urs Peter – This webinar will teach you how Spring Boot and Kotlin Coroutine support can eliminate the drawbacks of the basic WebFlux approach.
Conferences and Events
Check out the events planned for January:
London Java Community Roundtable – London, United Kingdom, January 9
Voxxed Day Ticino – Ticino, Switzerland, January 19
Voxxed Day CERN – Meyrin, Switzerland, January 22–23
Kotlin für Java Entwickler – Lucerne, Switzerland, January 24
Best of modern Java 21 – St. Gallen, Switzerland, January 25
OOP 2024 – Munich, Germany, January 29 – February 2
London Java Community Live with Gabriel Manor-Liechtman and Sam Carr – London, United Kingdom, January 31
Culture and Community
Tech predictions for 2024 and beyond – How will Generative AI shape future innovations to make technology more accessible? Find out in this article.
10 hard-to-swallow truths they won’t tell you about software engineer job – Mensur Durakovic discusses some true-to-life aspects of a software engineering job that are often not covered in university education.
The problem with attending team/project meetings on vacation – Is this issue significant, and what impact does it have on the team and yourself? Come join the conversation to explore more!
Article: Navigating Complex Interpersonal Relationships: Co-Creating Deliberate Workplace Connections – This article explores how to balance traditional and modern work styles, focusing on remote work, better work-life balance, and policies that treat employees as individuals in an effort to build a more human-centric workplace.
You are never taught how to build quality software – Why is QA crucial, and how can you inspire others to enhance their development skills for quality software? Florian Bellmann writes about these topics in his latest blog post.
And Finally…
This section offers the most interesting materials from IntelliJ IDEA’s blog and YouTube channel.
IntelliJ IDEA 2023.3 Is Out! – The IntelliJ IDEA 2023.3 release signifies the continued evolution of AI Assistant, which has now moved beyond the technical preview stage and features a host of exciting improvements. In other areas, this version includes comprehensive support for the latest Java 21 features, introduces an intuitive floating toolbar with editing actions, and adds a Run to Cursor inlay option for an enhanced debugging workflow. Additionally, IntelliJ IDEA Ultimate now provides a seamless Kubernetes development experience out of the box. Try IntelliJ IDEA 2023.3 now!
Writing a Java Inspection for IntelliJ IDEA Using AI Assistant – Tagir Valiev, the Java Team Technical Lead at JetBrains, decided to experiment with AI Assistant to create a new Java inspection in IntelliJ IDEA. He documented his experience in this blog post.
Harnessing the Power of AI Assistant in IntelliJ IDEA –
During this session, Anton Arhipov from JetBrains’ Kotlin team showcases AI Assistant in IntelliJ IDEA. Discover how this JetBrains proprietary AI tool aids in examining and enhancing existing code and assists in writing new code across various scenarios.
That wraps up today’s issue nicely!
As always, we’re gathering ideas for the next Java Annotated Monthly, so feel free to email or tweet us your suggestions by January 20. Also, don’t forget to explore our archive of previous JAM issues – it’s perfect for catching up on any blogs or articles you may have missed.