Why I’m Learning Perl 6
> <i>Concurrency is hard and if you want M:N thread multiplexing (i.e. WEB SCALE CODE, where application threads aren’t pinned to pthreads) your options today are precisely Erlang, Go, .NET, and Perl 6.</i><p>Putting aside the "web scale" jokes (<a href="http://www.mongodb-is-web-scale.com/" rel="nofollow">http://www.mongodb-is-web-scale.com/</a>), this statement is still absurd.<p>Every major language, or at least the ones that matter for backend development, has support for thread multiplexing / coroutines / fibers, whatever.  Perhaps not in the core language syntax or standard library.  But it's easy to implement with native code, and so SOMEONE has implemented it in a library if the language has an FFI.<p>Java, and all of the other JVM-based languages in turn, have Quasar (<a href="http://docs.paralleluniverse.co/quasar/" rel="nofollow">http://docs.paralleluniverse.co/quasar/</a>).<p>Ruby has support for primitive fibers baked into the standard language (<a href="https://ruby-doc.org/core-2.1.1/Fiber.html" rel="nofollow">https://ruby-doc.org/core-2.1.1/Fiber.html</a>), and likewise community gems with more robust functionality like Quasar.<p>Python 3 likewise has this out of the box (<a href="https://www.python.org/dev/peps/pep-0492/" rel="nofollow">https://www.python.org/dev/peps/pep-0492/</a>).<p>The list goes on and on:  <a href="https://en.wikipedia.org/wiki/Coroutine#Programming_languages_with_native_support" rel="nofollow">https://en.wikipedia.org/wiki/Coroutine#Programming_language...</a>.