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).
Yeah it looks pretty great. I prefer a language that is fast by default without user effort costs. Python is mostly number 2 because it is the most popular in general, it is easy to use, and I am enjoying Pytorch and all of the scipy libraries. So maybe. :)
Did you check out this paper? Julia syntax is now directly differentiable.
https://arxiv.org/abs/1810.07951
And its code.
https://github.com/FluxML/Zygote.jl