Steven D'Aprano <st...@pearwood.info> writes: > "But frankly the stuff I'm seeing in this thread makes me sad for > *literally every programming language in existence except for Erlang > and maybe one or two others*, which altogether about six people use in > total..."
Erlang microtasks are more a matter of the runtime environment than the language. It might be possible to have something like it in PyPy. Other languages typically do concurrency with something like: 1. threads - various hazards that can be avoided if you're careful 2. callback chaining like in node.js - gets messy if the program is complicated, but conceptually simple 3. explicit state machines with something like libevent in C -- same as #2, simple but tedious 4. lightweight threads/tasks like in GHC and Erlang -- very nice though requires a sophisticated runtime system 5. cooperative multasking (small RTOS's, Forth, etc): simple, but apparently bug-prone when the program gets complicated Python's async stuff seems to combine various of the above approaches and (while I'm not saying it's objectively bad) the experiences I've had with it so far have been confusing and unpleasant. I do want to put some effort into understanding asyncio, but so far threads have worked ok for me. OK Web Server (uses a separate C++ process for each page on the site) looked straightforward and fast, though makes some architectural impositions. http://seastar-project.org/ seems interesting but I don't understand it at the moment. -- https://mail.python.org/mailman/listinfo/python-list