Uh, Emacs has asynchronous IO, and it works fine. http://www.gnu.org/software/emacs/manual/html_node/elisp/Asy...
"Threading. This has been an irritant for me for years. Emacs
blocks all windows when you're doing computation in any window.
It's an operating system, but not enough of an operating system.
I myself will run three instances of Emacs to get around this.
I'm slurping in my email and I can't do something at the same time
because it's off in space slurping in my email. It's going off and
doing some extended computation and I can't go in another window and
do anything else at the same time. ... If it's doing extended
computation and a lot of file IO and talking to the network, it
blocks you. There's not more than one thread there."
There's also this[2] discussion of lack of threading in Emacs on the Emacs Wiki.Or Emacs's fantastic support for communicating with REPLs in many interpreted languages.
You can execute any shell command asynchronously while doing other things inside Emacs. You can even compile with beautiful output, in terminal: http://tuhdo.github.io/static/c-ide/compilation-compile.gif
Or built-in GDB integration, also asynchronous: http://tuhdo.github.io/static/c-ide/gdb-many-windows.gif.
Another GDB screenshot: https://flic.kr/p/6FW7Q7.
And Emacs officially supports asynchronous IO, while in Vim it's a hack from Vim Script.