IntelliJ IDEA Java

‘JEP Explained’ – a series of interviews on Java 23 features

The release of Java 23 is around the corner, September 17, 2024, to be precise.

What’s new in this Java version and why should you care about it? If you want to know more than just the syntax of these new features – the bigger picture, behind-the-scenes stories, and real-life experiences of experts – then this is what JEP Explained is all about!

JEP Explained is a series of interviews with Java leaders and experts that are closely involved with creating the new Java features. We aim to help developers, organizations, and anyone interested to understand the new Java features beyond just their syntax and learn how to use them effectively.

Interviews published till date

We have published a couple of interviews in this series till date. Here’s the list of the published interviews, with a link to the interview recording and quick details about each episode.

JEP Explained. JEP 455: Primitive Types in Patterns, instanceof, and switch

In this episode, we were privileged to interview Brian Goetz, Java language Architect with Oracle, Aggelos Biboudis, Principal Member Technical Staff, Oracle, and Tagir Valeev, Java Team Technical Lead, JetBrains on JEP 455.

Find out the bigger picture of why primitive data types are being added to the Java language and the finer details of the changes they propose, while also getting a quick demo on how to use them in your codebase.

Don’t miss the fun sections at the end, where all these experts try their luck with tongue twisters, clarify whether some statements are a myth or a fact, and the super fun section when they respond to statements by enacting emojis.

JEP Explained. JEP 482: Flexible Constructor Bodies

This episode of “JEP Explained” covers JEP 482, about proposed changes to constructors that relaxing rules to make them more flexible. With this proposed change, you can execute statements before calling super() or this() in a constructor and initialize members of a derived class before calling a parent constructor.

In this episode, I interviewed Dr. Venkat Subramaniam, a prize winning author, long time professor, Java Champion, and organizer of the Dev2Next conference in Denver.

In this interview, Dr. Venkat talks about and demos the issues in your codebase without this change and the benefits of this feature.

Don’t miss the fun sections at the end, where Dr. Venkat tries his luck with tongue twisters, clarifies whether some statements are fact or fiction, and the section when he responds to statements by enacting emojis.

JEP Explained. JEP 477: Implicitly Declared Classes and Instance Main Methods

This episode of “JEP Explained” covers JEP 477, which deals with implicitly declared classes and instance main methods.

The goal of this JEP is to simplify getting started with Java for new Java developers. It does so by introducing simple yet significant changes, like changing the signature of the ‘main’ method from ‘public static void main(String[])’ to ‘void main()’, changing the need to use ‘System.out.println()’ to using ‘println()’, and much more.

In this episode, I interviewed Ken Fogel, Department Chairperson Program Coordinator of the Computer Science Technology Program at Dawson College,
Research Scholar in Residence at Dawson College, and professor with 21 years of experience teaching Java. Ken is also a Java Champion, Conference organizer for JConference, and JCP Executive Committee Member.

In this interview, Ken talks about the relevance of these changes for new Java developers and how it will help those teaching “Java 101” to focus on the concepts that benefit beginners the most. Ken also talks about how the new feature can help students to stay focused on building strong computing and logic-building foundations and be introduced to new concepts in an incremental manner.

Don’t miss the fun sections at the end, where Ken tries his luck with tongue twisters (he aced it), and the section when he responds to statements by enacting emojis.

JEP Explained. JEP 466: Class-File API

This episode of JEP Explained focuses on JEP 466, which covers the Class-File API, which is designed for parsing, generating, and transforming Java class files.

In this episode, I interviewed Rafael Winterhalter, a Java Champion, consultant, blogger, conference speaker, and author of Byte Buddy – a Runtime code generator for the Java virtual machine.

In the interview, Rafael talks about the relevance of the Class-File API; which applications, frameworks, or libraries would use it; and how the developers have been parsing, generating, and transforming source code files until now. He covers the different kinds of transformations that are available and how Byte Buddy, a file transformation tool he authored, works.

Rafael also talked about the benefits and drawbacks of the Class-File API, drawing on his hands-on experience with Byte Buddy.

Don’t miss the fun sections at the end, where Rafael tries his luck with tongue twisters (he aced it) and the section when he responds to statements by enacting emojis.

JEP Explained. JEP480: Structured Concurrency

This episode of JEP Explained focuses on JEP 480, which covers structured concurrency and introduces an API for this new feature. You can find more information on structured concurrency and virtual threads here.

In this episode, I interviewed José Paumard, Java Champion, author, speaker, developer advocate, oracle, former university professor, JUG leader, conference organizer, JavaOne Rockstar, and presenter of the JEP Cafe series on Java’s YouTube channel.

José started the interview by discussing who this JEP is for and the benefits and shortcomings of structured concurrency. He then went on to highlight the essence of structured concurrency – how it makes it easy to debug, test, and observe concurrent applications. He also demonstrated structured concurrency using hands-on examples.

Don’t miss the fun segments at the end, where José tries his luck with tongue twisters, and the part when he responds to statements by enacting emojis.

In the last section, José mentioned a couple of unconferences. Here are the links to them if you are interested:
Jalapeño, Mexico
JChateau, France
JAlbas, Scotland
JCrete, Greece

Interviews in pipeline

We are planning, recording or editing more JEP Explained interviews and we’ll publish them soon. You can expect to view interviews on the following listed JEPs:

JEP 467: Markdown Documentation Comments
JEP 469: Vector API (Eighth Incubator)
JEP 473: Stream Gatherers
JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
JEP 474: ZGC: Generational Mode by Default
JEP 476: Module Import Declarations

Summary

With JEP Explained Interview series, we hope to help you not just understand and use new Java features, but also know about their stories, their relevance and importance. We want you to understand Java features beyond their syntax by bringing to you insights from JEP owners and authors, or leaders and experts with hands-on experience.

Happy watching and learning!

image description