Comment by gavinhoward
Comment by gavinhoward 15 hours ago
> It has been mentioned that it’s possible that the default for debug builds is that every single function is compiled as an async function. I.e. there is canonically only one function color.
But then, for those that choose to only use blocking I/O or green threads, they still pay the penalty of async merely existing.
> That’s a really bad take. It’s not much different from what they did to make allocators explicit.
I mean, Zig explicit allocators are really the same thing is Go interfaces, just dressed up as an innovative feature by a specific use case. This is what I mean by "appearing" innovative: they are taking old and tested ideas and presenting them in new ways to make them appear new.
Also, Zig could have had explicit allocators without needing to pass them to every function [1].
> They’ve moved away from designing in a bunch of fancy syntax that locks users into one particular concurrency model, and gone for a more explicit and boring design which puts power in the hands of the user.
Except that if every function is made async, they have actually removed from users the power to choose to not use async.