&gt; I can sidestep gc and carefully control memory layouts for cache friendliness<p>Memory layout and GC are two completely orthogonal issues. You will be able to control memory layout quite well with Valhalla (value types) and even on a finer-grained level with Panama if you need C interoperability. VarHandles (hopefully in Java 9) will give you safe access to off-heap memory. Currently you can do that with Unsafe, which is more work but still less than C++.<p>&gt; What the jvm really buys you is not having to build once for each platform<p>Oh, I&#x27;d say it buys you a lot more: seamless polyglotism, exceptional performance even for dynamic stuff (dynamic languages, esp. w&#x2F; Graal, but even cool bytecode manipulation in Java or even simple code loading&#x2F;swapping), and you get all that performance with unprecedented observability into the running platform.