Java 26 / JDK 26: General Availability: https://mail.openjdk.org/archives/list/[email protected]/thread/2MXXXBJKTJXQD25Q4XGGINKYA33T7D5I/
Features: https://openjdk.org/projects/jdk/26/
Downloads: https://jdk.java.net/26/
| Blog | https://simy4.github.io |
Java 26 / JDK 26: General Availability: https://mail.openjdk.org/archives/list/[email protected]/thread/2MXXXBJKTJXQD25Q4XGGINKYA33T7D5I/
Features: https://openjdk.org/projects/jdk/26/
Downloads: https://jdk.java.net/26/
Scala 3.8 is here! A major release modernising the ecosystem and paving the way for Scala 3.9 LTS.
Highlights:
- Standard library compiled by Scala 3
- Better Fors & runtimeChecked stabilized
- New experimental features
- Update to JDK 17+
🧵 Let's dive in...
We began to forget how to pass parameters to functions. Before @Bean, before @Configuration or @PropertySource and certainly way before WebSecurityConfigurerAdapter objects were responsible not only for their own behaviour, but also for creating everything they depended on. public class OrderService { private final PaymentProcessor processor; public OrderService() { this.processor = new StripePaymentProcessor(); } } This code works, but it also quietly locks many decisions inside the class, because OrderService now decides which payment processor is used, how it is created, and when its lifecycle starts, and once this happens, changing that decision means changing the code itself. Configuration and behaviour start to mix, breaking single responsibility principle.