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.
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
Yeah. I should check it out more though. It looks like it grew a lot.
@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?