To be more forthcoming, there was a long period when the received wisdom was that threads were unmanageable. But that was a category error: The programming model in POSIX and others was what made it hard. The fundamental concepts are a tiny step harder than trivial, and it was not hard to build a programming model that matched them.

The first mistake people made was to split "thread" from "process". What those words mean today is not what they meant a generation ago.

For me, it's like the mess sockets made of networking. Our programming models could be so much simpler than what we are required to deal with.

-rob