Why Don't They Just... ?! The Deliberations Behind Evolving Java

There are many nifty features that Java could have but doesn't. Somewhat surprisingly, there are reasons for that and in this talk I'll discuss those for a few concrete cases as well as the deliberations behind such decisions.

Swirling bright smoke on non-descript black background

There are many nifty features that Java could have but doesn't. Why, though, how hard can it be to implement them? Why don't they just...

  • let us add fields to records?
  • add ?. for null-safe member selection?
  • add extension methods?
  • remove the need for semicolons?
  • introduce immutable collections?
  • make Stream handle exceptions?
  • turn Optional into a proper monad?

After this talk, you'll know. And have gained insight into the deliberations behind the decisions that evolve Java and why nothing can "just" be implemented.


Here's the current version of the slides.

I also embedded them below. If they're focussed, you can navigate with arrow keys or swipes (they're two-dimensional, with chapters on the horizontal axis and chapter content layed out vertically). Use Page Up/Down for linearized order and ? for more shortcuts.


Here's a good recording of the talk. I hope you'll like it.

Always embed videos

(and give me a cookie to remember - privacy policy)

Watch on YouTube

Past Presentations

I gave this talk a few times before. See below for links to slides (as they were at that very event), videos, and other information.