Clojure core.async Channels
The ClojureScript support needs work but you can already express some incredible things, those familiar with channels in Go should be dropping their jaws that you can do this in the browser:<p><a href="http://gist.github.com/swannodette/5886048" rel="nofollow">http://gist.github.com/swannodette/5886048</a><p>With timeout channels, the throttler is a beautiful 7 lines of clear code - compare to the Underscore.js imperative mess: <a href="http://underscorejs.org/docs/underscore.html#section-64" rel="nofollow">http://underscorejs.org/docs/underscore.html#section-64</a><p>I've been doing sophisticated JS UIs for 8 years now and had largely given up on ever being able to really manage async complexity -  neither JavaScript Promises nor ES6 generators provide this level of process coordination and clarity.<p><i>Very</i> exciting times.<p>EDIT: Oh and don't forget you can pattern match on the result of a select (alt!) with core.match to get Erlang style matching <a href="http://github.com/clojure/core.match" rel="nofollow">http://github.com/clojure/core.match</a> :) All this from <i>libraries</i>