It was a mistake
Algol was a mistake
Algol has been designed as a theoretical imperative language, on assumption that a program will run on a “whole computer”, as it used to be back then before any time-sharing systems from IBM or AT&T.
The main mistake was to make it imperative. The resulting lineage, which includes C, C++, Java and even Javascript is nothing but pain and suffering (and you can tell!).
OOP was a mistake
OOP without message-passing (and sharing nothing) at is core was a mistake. The theoretical claim or promise of total encapsulation never materialized.
Other than that, stateful objects do not compose and multi-threading breaks the state encapsulation. It routinely gets corrupted on a multi-threaded and multi-core settings.
Pthreads was a mistake
Threads break process isolation, which is the fundamental and required characteristic of a process, plain and simple. It resulted in an unsound abstraction with all the well-known consequences.
In short, an imperative multi-threaded OOP is a low-effort toxic junkfood of our trade.
There are, however, things even worse than JVM. What happens inside a Javascript runtime should really not being discussed by sane, cultured, intelligent people.
Erlang
The designers of the Erlang language spent a lot of effort to use only sound abstractions and to place asynchronous message-passing at the center (as the foundational feature), restricting any other form of sharing.
It is important to realize that, unlike Java (which is a plain imperative OOP in C++), the Erlang runtime has also been designed with sharing nothing principle in mind, and both message-passing and process isolation has been done right (unlike threads, they do not share even the stack).
The “outside world” is accessible only thought ports and corresponding standardized drivers.
Last, but not least, is the principle-guided uniformity. In Erlang everything looks like an isolated process, capable of receiving and sending messages in a uniform way. This is an example of a conceptual integrity at work.
The results are so remarkable, that OO people prefer do not talk and ignore Erlang or the industrial (telecom and manufacturing) projects based on it.