27 karma · joined February 25, 2025
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.
Whether or not you personally would make this cost/quality tradeoff comes down to the individual, but to me it is also quite clear that something was lost in the transition.
The video game community is often pretty explicit about this. They want their favorite games to be longer, not shorter, because they want to spend more time enjoying it. I don’t think it’s so strange that people may apply the same mentality, to books, movies, etc as well.
Additionally, browser JS adheres to a quite strict backwards compatibility requirements. Python can and does deprecate and remove APIs, and I would imagine the community would not like to lose that flexibility.
WASM is probably the best bet here, in that it provides a well-specified low-level target, such that the door is open for other languages for anyone who is allergic to learning/using javascript.