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.

Upcoming Presentations

In the coming months, I'll present this talk at JUG Bonn. If you're there as well, I'd love to meet you - I'm always up for a chat. 😁 Just flag me down when you see me. (This includes chat rooms.)