surprised to see all the comments about virtual threads. the real best feature of this release is record pattern matching in switch. this is a huge syntax improvement
Oh no. Without record pattern matching you have to have few extra variables declared in scope. Easy with modern IDE. Async code with either a spaghetti of CompletableFutures or reactive style is a nightmare. But I can achieve the same throughput with a “virtual thread per request” style as with reactive, it’s a game changer.