I think my top three language picks would be: C++, Python, and probably Scheme. It really comes down to the cathedral and the bazaar.
Even though C++ and Python have commities, Python has an exposed ast and is probably the most popular language. So it is like going to the bazaar. You can find really anything there. C++ has inline assembly and many weird hacks. A large chunk of it is just undefined behavoir. And, a lot of programming paradigms can go and set up shop in C++. Many other languages say they have a unique quirk, only for it to end up in Python and C++ a few years later.
Languages that tell you what to do are cathedrals. Scheme languages have their 9 primitive functions (9 holy primitives) and that is about it to be a scheme. Their committee tries to make RSR7 do everything. But so few of the older schemers actually care.
@jmw150 To add to this, I love Julia (and other lisp/pseudolisp dialects like racket). I think it should seriously compete for Python on your list 😉
It has so many nice features, spiffy macros, quasiquoting (though with slightly different syntax), and has been able to do anything I ask of it with flexibility and grace. While the package environment isn't as extensive as Python yet, I'm almost positive it will become the standard for scientific computing within a decade or two, assuming current trends hold (which, obviously, they probably won't, but I still like it lol).
@jmw150 Yeah, I've seen both of those since they came out actually! I've been a huge fan of their work, and the extensions thereof. Especially since they leverage the Cuda package to make it trivial to run these operations on GPUs, its pretty incredible that it requires no overhead on the dev's part.
Have you seen their website at fluxml.ai?
@johnabs
Yeah. I should check it out more though. It looks like it grew a lot.