There is also a ~33% decrease in power usage. So a i7-8700 which also has a similar score now has 65W TDP vs a 95W TDP.
Since moores law is leveling off, programming skill & quality will become more important to extract more performance out of computers. I forsee less javascript and python and more golang, java & rust and other %100 statically typed languages in the future.
Dynamic/static typing and execution performance are largely orthogonal. Java manages to be slow while being statically typed.
If your language is inherently heap bound and/or targets bytecode with ad-hoc JIT trickery, no amount of static typing or hard inference is going to help.
Java is a actually fairly fast for a language with GC. Far faster than equivalent javascript unless you do things like asm.js, which might as well be just a binary runtime.
I feel you are generous with x3 for Java: empirically, a straightforward rewrite to C easily gains you 30x, or more for heavily cache-local datasets.
And it's not setting any speed records among automatic memory management languages either. Swift is well ahead in performance without breaking a sweat. Some Common Lisp implementations generate faster code than Java without any JIT overhead and a billion investment into development.
Swift is a C++/Rust style language vs a Java language. It just looks really pretty, so you might not realize what it's implicitly doing under the hood.
It doesn't use full automatic GC, so of course it is going to be faster than Java.
Swift also has performance gotchas, like it's strings. It's strings are very easy to use in an non-performant way because they are going for full unicode correctness, even when you don't want it.
But it's also a young language with a whole bunch of low hanging fruit in the perf realm.
My perf scale is also more orientated towards business logic / app type things. If your really thinking about your perf and doing a rewrite in fully static C/C++, then I have no idea how much better you can get :)
Swift is distinctly not Rust although it looks a lot like it on the surface. It uses reference counting, just like Perl, Ruby or Python. RC is the most rudimentary form of garbage collection. Also has its problems, like dealing with circular references.
And yes, CL is fully GC. But my point is that's not the culprit. If your problem calls for allocation and management of heap memory, it has to be done one way or another, manually or via GC. GC overhead in that light can really be negligible, and it's other concerns (like scheduling and real time constraints) that typically make its use problematic.
A language's documentation, ease of use, and community are all far more important than CPU performance. Point me to one java project on Github with >1000 stars and I'll give you a hundred Python and JS projects.
There are heaps of Android Java (or nowadays Kotlin) projects and libraries with well over 1000 stars. I'd guess way more than Python but quite a bit less than JavaScript.
Since moores law is leveling off, programming skill & quality will become more important to extract more performance out of computers. I forsee less javascript and python and more golang, java & rust and other %100 statically typed languages in the future.