> The article is claiming that languages that allow a blocking style of programming via green threads (to still get the same high concurrency) allow a more natural way to program.
I would say this is a subjective conclusion at best. We might ask instead which model facilitates collaboration. That is in a large, very concurrent program composed by many developers which model is going to lead to more robust code. The interesting thing about M:N programming is that large programs in 1:1 languages (Java, C#) tend to converge on to the M:N model. Many large concurrent Java programs therefore end up involving several carefully monitored threadpools with well-defined contracts that describe how work gets scheduled and distributed between the threadpools. But this is not an argument for M:N languages precisely because the "problem of scheduling" often tends to be very domain specific. Other programs have lots of success with the Reactive model because they're never truly blocking and waiting for information that hasn't arrived. Some find success with Actors. It's worth considering then that different concurrency problems call for very different solutions and saying one model is better than another is erroneous.
I would say this is a subjective conclusion at best. We might ask instead which model facilitates collaboration. That is in a large, very concurrent program composed by many developers which model is going to lead to more robust code. The interesting thing about M:N programming is that large programs in 1:1 languages (Java, C#) tend to converge on to the M:N model. Many large concurrent Java programs therefore end up involving several carefully monitored threadpools with well-defined contracts that describe how work gets scheduled and distributed between the threadpools. But this is not an argument for M:N languages precisely because the "problem of scheduling" often tends to be very domain specific. Other programs have lots of success with the Reactive model because they're never truly blocking and waiting for information that hasn't arrived. Some find success with Actors. It's worth considering then that different concurrency problems call for very different solutions and saying one model is better than another is erroneous.