| ▲ | warmwaffles 9 hours ago | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Async usually ends up being a coloring function that knows no bounds once it is used. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | amonroe805-2 9 hours ago | parent [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
I’ve never really understood the issue with this. I find it quite useful to know what functions may do something async vs which ones are guaranteed to run without stopping. In my current job, I mostly write (non-async) python, and I find it to be a performance footgun that you cannot trivially tell when a method call will trigger I/O, which makes it incredibly easy for our devs to end up with N+1-style queries without realizing it. With async/await, devs are always forced into awareness of where these operations do and don’t occur, and are much more likely to manage them effectively. FWIW: The zig approach also seems great here, as the explicit Io function argument seems likely to force a similar acknowledgement from the developer. And without introducing new syntax at that! Am excited to see how well it works in practice. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||