lambda_garden
Perhaps really performance critical stuff could have a "notrace" annotation.
In languages with async-await syntax, I like that it is explicit what is sync and what is async. I also like how the "bind" points within an async expression make it clear where the syncronization happens. It seems to me that Java 21 makes all of this implicit, which is a step backward in this respect.
Similar to how types enforce valid usage (a foundational idea in Java), I feel that an Async<T> should not be implicitly a T.
Are people concerned about this at all?
Have the Java designers addressed this?
They sure didn't try very hard to secure it. I wonder if it was their strategy all along.
Some problems off the top of my head:
- The lack of new variable declaration keyword makes scopes less explicit. nonlocal is not simpler in the large than `let x = ...`
- The lack of multi-line lambdas is very limiting for anyone coming from JS, C#, Rust, Kotlin... heck even Java
- The ternary operator (... if ... else ...) is needlessly different for other mainstream languages
let main () =
printf "hello"
0Larry and Sergey Won't Respect You in the Morning (2006)
[0] https://jacobin.com/2022/05/jacobin-is-looking-for-a-program...