This is good and detailed, but misses a broader trend: how "worse is better" started to win - first Java over C++, then python and javascript over Java, and here markdown over Word and docbook. When markdown emerged, docbook was getting even more elaborate, and vendors everywhere had for decades been locking people into frameworks and languages with fantastic features that were hard to use -- and then the internet bu…
Java isn't worse than C++; it has a much more capable run-time, something which is left as an implementation-defined footnote in C++. Java had a leg-up over C++ by several decades in having a concurrency story (at all) in the language. I wouldn't use std:: anything for threads even in a greenfield C++ project today. Garbage collection is more advanced than the primitive management tools available in C++, like smart p…
While sort of technically true, concurrent code expressed in high level language was almost invented in C in the 1980's as the first Unix SMP devices took off (early multiprocessing work at the OS level was at the assembly level, Unix was almost alone in having a portable kernel and the need for SMP).
Java, coming along about a decade later from the same incubation environment, very much reflects that learning. But no, they did it right in Java because they had already done it in C.