>
A single language needed to solve all problems is a fallacy.Has that been proven and do we have pointers to any peer reviewed papers on that?
Because else its just an old's wives tale.
I don't see any logical impossibilities for one language to solve all problems (meaning, to work well for at least 4 domains: OS and drivers a la C, apps/games a la C++, network programming a la Go, Java etc, and scripting a la Python).
It's just cultural, monetary, design and community issues with most current languages.
And even if we want to have different profiles for each domain, ideally I'd do it with a 2-layered language implementation like this:
1) Base library: network, threads/fibers, UI, database etc of Python/Java SDK proportions
2) A "close-to-the-metal" layer without a (big or any) runtime (can use RAII, ARC, etc).
3) A "scripting" layer that is a GC'ed an easier to use superset of the (2)'s syntax. Ideally all (2) code should also be valid (3) code.
Both use the same base library (written in the "metal" layer or C). (3) can be embedded into (2) as a scripting engine, and (3) can call all (2) APIs trivially (e.g. no need for declarations like for using C from Go, Python etc -- just import and call).
Programmers can use (2) or (3), mix them, share code between the two. And what's best, the core APIs are all the same -- which is most difficult part to master in a language.
(Think like Java and Groovy, but with the parent language closer to the metal and the later closer to C).