The state of writing asynchronous code in python
Python is a language with the ambition that there should be one and only one obvious way of doing things. With regards to asynchronous programming that ambition is not fulfilled currently. As an example, the reactive ReactiveX/RxPY library for python lists no fewer than 6 different ways of doing asynchronous programming in python (from the ReactiveX/RxPY documentation):
RxPY also comes with batteries included, and has a number of Python specific mainloop schedulers to make it easier for you to use RxPY with your favorite Python framework.
AsyncIOScheduler
for use with AsyncIO. (Python 3.4 only).IOLoopScheduler
for use with Tornado IOLoop. See the autocomplete and konamicode examples for howto use RxPY with your Tonado application.GEventScheduler
for use with GEvent. (Python 2.7 only).TwistedScheduler
for use with Twisted.TkinterScheduler
for use with Tkinter. See the timeflies example for howto use RxPY with your Tkinter application.PyGameScheduler
for use with PyGame. See the chess example for howto use RxPY with your PyGame application.
You could probably list more of them, e.g. Gtk.
Javascript on the other hand has asynchronous operation built right in. Currently 1-0 for javascript versus python in this regard.