loader from loading.io

“Java Language - State of the Union”

Inside Java

Release Date: 12/23/2022

“Java Carrier Classes & Discussing Syntax” [AtA] show art “Java Carrier Classes & Discussing Syntax” [AtA]

Inside Java

Carrier classes are Project Amber's current idea to extend some of records' benefits to regular classes. Probably the most important among them is deconstruction, which would allow classes to participate in pattern matching and reconstruction. In recent weeks, there have been two mails to the Amber mailing list that describe that idea, and in this episode we discuss them both as well as the evolution between them. We also hear why syntax discussions often provide negative value and get a sneak peak at what will likely be the next Project Amber language feature. Just ahead of the JavaOne...

info_outline
“Unboxing Java 26 for Developers” [IJN] show art “Unboxing Java 26 for Developers” [IJN]

Inside Java

Java 26 is getting all packaged up to be shipped worldwide! As with every release of the JDK there are a number of new features, improvements, changes in behavior, and more developers should be aware of before upgrading. In this episode of the Inside Java Newscast we will review all the noteworthy changes coming in Java 26 that will impact developers.

info_outline
“Towards Better Checked Exceptions” [IJN] show art “Towards Better Checked Exceptions” [IJN]

Inside Java

Java's checked exceptions are both an integral part of the language and one of its most contested features. Whether their introduction was a mistake and whether they should all be turned unchecked are frequently discussed topics but since the former is not overly relevant and the latter unlikely, this conversation isn't moving Java forward. Instead, let's talk about specific issues with checked exceptions and what could be done about them - from (entirely speculative) language changes to (marginally realistic) JDK/library evolution to stylistic changes.

info_outline
“LazyConstants in JDK 26” [IJN] show art “LazyConstants in JDK 26” [IJN]

Inside Java

Lazily initializing fields in Java is error-prone and undermines constant-folding. JDK 26 comes with JEP 526, which previews LazyConstant, a type that lazily initializes a value through a given Supplier. It executes that supplier at most once successfully and then assigns the value to a field annotated with @Stable, which allows constant folding. This API is also a poster child for how OpenJDK develops and evolves features.

info_outline
“HTTP/3 in Java” [ATA] show art “HTTP/3 in Java” [ATA]

Inside Java

HTTP/3 is the next version of the internet's most important application layer protocol. But, somewhat surprisingly, it uses UDP (via the new QUIC protocol) instead of TCP/IP, which has implications for the number of initial round trips, HTTP version selection, and time to first byte, but also adoption and evolution. Java 26 supports HTTP/3 out of the box. Nicolai Parlog talks to Daniel Fuchs and Daniel Jelinski, both Consulting Members of Technical Staff at Oracle and OpenJDK committers, about Java's HTTP client. They start by briefly retracing its introduction in Java 11 and its support for...

info_outline
“Carrier Classes” [IJN] show art “Carrier Classes” [IJN]

Inside Java

This episode presents Project Amber lead Brian Goetz’s recent email “Data Oriented Programming, Beyond Records”, wherein he describes plans to improve Java’s data handling capabilities by introducing carrier classes, a generalization of records. Like them, carrier classes describe their state through a component list that defines the type’s external API: accessors, a constructor, and matching deconstructor - this allows carrier classes to participate in pattern matching and reconstruction. Unlike records, the implementation of this API remains the developer’s task although...

info_outline
“Java's Plans for 2026” [IJN] show art “Java's Plans for 2026” [IJN]

Inside Java

In 2026, Java keeps evolving: Project Valhalla is gunning for merging its value types preview in the second half of this year; Babylon wants to incubate code reflection; Loom will probably finalize the structured concurrency API; Leyden plans to ship AOT code compilation; and Amber hopes to present JEPs on constant patterns and pattern assignments. And those are just the most progressed features - more are in the pipeline and discussed in this episode of the Inside Java Newscast.

info_outline
The New Inside Java Podcast show art The New Inside Java Podcast

Inside Java

Welcome to the new Inside Java Podcast. In this meta episode, Nicolai Parlog introduces you to the podcast's new structure with two shows under one umbrella: The long-form conversations you know become Ask the Architects episodes and they'll be accompanied by the Inside Java Newscast as a podcast.

info_outline
“Scripting Java, Collections & Generics, BeJUG” show art “Scripting Java, Collections & Generics, BeJUG”

Inside Java

In this special episode of the Inside Java Podcast, Nicolai Parlog talks to Adam Bien about scripting with Java, to Maurice Naftalin about the history and tradeoffs of the collections framework and erasure, and to Tom Cools about the innovative way the Belgian Java User Group organizes itself.

info_outline
“Predictability or Innovation? Both!” with Georges Saab show art “Predictability or Innovation? Both!” with Georges Saab

Inside Java

This Inside Java Podcast takes a meta approach. Instead of focusing on specific features, it explores the bigger picture: What are the right problems for Java to tackle? What are the current and future challenges for the Java platform? Why is predictability so important for Java, and what’s driving the recent focus on learners and students? Nicolai Parlog discusses these topics with Georges Saab, Senior Vice President of the Java Platform Group and Chair of the OpenJDK Governing Board.

info_outline
 
More Episodes

In this episode, David discusses with Gavin Bierman, the latest evolution in the Java Language. In addition to being a regular guest on this podcast, Gavin spends most of his time on designing new Java language features.

They are chatting about Project Amber's latest features related to Pattern Matching but also the String Template feature currently in draft. Through this discussion, you will also hear about some of the tools (ex. Preview Features) but also the challenges related to the design of new Java Language features.