News for hackers. Stuff that matters.
Re:Java 21 Released by lolinder on Tuesday September 19, 2023 @12:44PM (#37572593)
I didn't mean that = to be transitive. All async is IO, but obviously some IO is not async.

> We will never avoid the complexity of IO, but we can avoid the complexity of async

Because we can never avoid the complexity of IO, having a language construct that makes it obvious when you're using IO is valuable. IO code is different in kind than non-IO code, and having it explicitly marked helps keep the mess that is IO from propagating its problems throughout the rest of your code.

Re:Java 21 Released by pgwhalen on Tuesday September 19, 2023 @01:09PM (#37572999)
I don't entirely disagree that treating IO as something special at the linguistic level is a good idea, but I do think that async is a wildly indirect and confusing way to achieve that.

Language designers don't add async to make IO look special, they add it as a concurrent programming model.