Много раз читал в ДП рекомендации попробовать OCaml, как единственную альтернативу С++ в качестве языка общего назначения.
http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12-refman.txt
The Caml run-time system is not reentrant: at any time, at most one thread
can be executing Caml code or C code that uses the Caml run-time system.
Technically, this is enforced by a "master lock" that any thread must hold
while executing such code.
это ставит крест на очень многих возможных применениях