5 ms·
Hold on now. Even in GC’ed languages? Which ones? It is another programming paradigm. It has its uses. It has its drawbacks. “Ruining everything” is a big str
by LASR 5y ago
Hold on now. Even in GC’ed languages? Which ones?
It is another programming paradigm. It has its uses. It has its drawbacks.
“Ruining everything” is a big stretch.
- fulafel 5y agoEg Python, Clojure, JS all have no-fun async io modes. It has uses but should be kept in a box that most users can ignore, like Python and Clojure do.
- akvadrako 5y agoPython async is certainly not in a box — it's invading the language everywhere and it's terrible.
- masklinn 5y agoIt's really bad in Python, because the baseline awaitable of Python is a coroutine — same as Rust but without compiler support. The issue of coroutine-based async is that a coroutine does not do anything until it's awaited (and the chain goes up to the reactor), so in Python when you create a coroutine nothing happens. This is unlike Javascript or C# (IIRC) where the baseline awaitable is a task, with tasks awaiting is a synchronisation point, but if you create a task and drop it the task will go and do its own thing. In Rust, this is mitigated by `[must_use]`, so the compiler will warn you when you've created a coroutine (Future) and dropped it on the floor, not so Python, you just get a warning when the runtime shuts down, it's way harder to track missing awaits.
- sgt 5y agoWhat about Java 17?