Looks like so much good stuff there. A lot happening in the GC space in particular! I wonder what the code is like (although not enough to look it up) with all those alternative GC implementations. I imagine they are quite intrusive, and the different strategies sounds like it might be hard to support them all with different implementations of a common interface.
The existence of pattern matching, records, and mapping over lists in Java might have made me less inclined to jump on Scala, if they existed back in 2012. (We used Scala more as a “less verbose Java” at first, adopting more of the functional aspects over time.)
Glad to see some depreciations and even removals of things too.
What are the biggest draws to use Kotlin instead of Java in 2021, from a feature perspective?
The biggest two things that will (likely) never come to Java are nullability baked into the type system and extension methods. There are a lot of smaller things that are nice, like operator overloading, multiplatform support, lambda shorthand syntax, etc. that are nice as well. With the rate of recent progress in Java, given the choice I’m honestly not sure which I’d pick for a greenfield server project.