In any case monopoly is bad. People are writing frameworks and languages that transpile to JS because they are not happy with the default option. In addition to more general VM there also should be a more robust standard library, that any language targeting it will have access to.
The Java world also historically had a parent company giving strong guidance.
The Java world also has strong standard libs and tended to include everything and the kitchen sink in them (including full blown servers, XML/XSLT parsers) in the SDK (and EE SDK). Heck, it even has a full JS interpreter there.
Even so, there was huge fragmentation of effort for things like web frameworks (Struts, WebWork, Spring, Cocoon, Turbine, Tapestry, and many many more). Actually, if you were doing Java in 2000-2010 it was a running joke how everybody would write their own framework.
And I would argue that all the resources diverted to numerous Java-derivative languages (like Kotlin, Ceylon, Xtend, etc) would be better of in making Java better, or creating a single, community driven, Java successor, if there was a process (and access) for that.
As it is, they are all doomed to remain niche players, and ultimately fail, while languages like C# and Swift march on.
>JS engines in browsers should evolve to more general VMs, for which you can implement/port other languages.
You do understand that when this happens (and is spread enough to use in production), the web framework and tooling fatigue will be 2-3 times worse.
It's not just that everybody and their dog will write their own framework (as now), they'll split even more and do it for 10 languages... And expect the same dilution of effort for libs too...
I'd actually prefer a better JS replacement, that is, a new, single, language that draws from it and gets rid of all the caveats fixed (lack of ints, coercion rules, small std lib, optional types, even better designed for high speed JITing etc), than seeing Python, Clojure, Ruby, Lua, PHP and 200 others re-implemented in web assembly...