The only way to achieve C/C++/Fortran efficiency is a statically compiled, strongly typed language. Witness the effort put into Java JITC and the rest of the modern Java (and Graal) runtime. Still well short of the promised “C equivalence”.
To me, Mojo looks like the best approach to fusing that with the Python ecosystem! (I have no doubt about it being open sourced at some point.)
JIT and static typing are not mutually exclusive or necessarily opposed. For example, MKL added JIT for small matrix multiplications quite a while ago.
I think people just reach for JIT more often in dynamic languages because they carry more information around and have more of a performance deficit that they want to mitigate.
I dunno. I mostly program in Fortran but JIT seems way cool. Fundamentally I don’t see why a JITer couldn’t beat my code in a very dynamic language, it would just need to find a big loop that calls a kernel a bunch of times, where the exact computation in the kernel is determined at run-time, and then jit the kernel and the loop together.
I meant to reply a while back, I hope you run across this.
You should definitely look into Julia. It’s a beautiful language, and squarely aimed at the Fortran space. It also relies heavily on JITC and GC. That’s fine for purely scientific computing, but not so good as a general purpose language.
That’s where C, C++, Rust, and Mojo are the current major contenders, IMO.
To me, Mojo looks like the best approach to fusing that with the Python ecosystem! (I have no doubt about it being open sourced at some point.)