<story><title>A compact overview of JDK 21’s “frozen” feature list</title><url>https://vived.io/a-compact-overview-of-jdk-21s-frozen-feature-list-jvm-weekly-vol-138/</url></story><parent_chain><item><author>hamandcheese</author><text>I&amp;#x27;m impressed with how Java is shaping up. With records, pattern matching, destructuring, and virtual threads all arrived or arriving, what advantages do Kotlin and Scala bring?</text></item></parent_chain><comment><author>usrusr</author><text>It&amp;#x27;s the small things that make kotlin awesome. Not microscopic things like removing semicolons, but the left-to-right of .as?, .let and friends that allow simple things to remain simple instead of littering the code with almost-single-use names. Give those trivial intermediates a name when you think the name will be helpful, not when the syntax is unhappy without. Those aren&amp;#x27;t astronaut level language features to treat someone&amp;#x27;s Haskell-envy, but simple things that just happen to add up really well.</text></comment>
<story><title>A compact overview of JDK 21’s “frozen” feature list</title><url>https://vived.io/a-compact-overview-of-jdk-21s-frozen-feature-list-jvm-weekly-vol-138/</url></story><parent_chain><item><author>hamandcheese</author><text>I&amp;#x27;m impressed with how Java is shaping up. With records, pattern matching, destructuring, and virtual threads all arrived or arriving, what advantages do Kotlin and Scala bring?</text></item></parent_chain><comment><author>matsemann</author><text>The stdlib of kotlin with immutable types, lots of good extension functions on for instance lists etc is hard to beat. Especially with the nice lambda syntax it makes it a joy to write functional code compared to streams and having to call separate functions by wrapping instead of chaining.&lt;p&gt;Operator overloading can be misused, but for certain things it makes stuff much prettier as well.</text></comment>