JVM vs Native Runtimes

Comments debate the merits of JVM-style virtual machines for portability and performance against native compilation in languages like Go, Rust, C++, and C#, focusing on efficiency, complexity, and suitability for diverse languages and applications.

📉 Falling 0.4x Programming Languages
3,094
Comments
20
Years Active
5
Top Authors
#557
Topic ID

Activity Over Time

2007
8
2008
21
2009
46
2010
112
2011
98
2012
131
2013
193
2014
144
2015
184
2016
188
2017
218
2018
239
2019
227
2020
230
2021
251
2022
246
2023
226
2024
161
2025
165
2026
6

Keywords

e.g PHP CPU JIT JS IL youtu.be GO WASM JVM jvm runtime java languages vm bytecode run language native virtual machine

Sample Comments

eikenberry Jun 9, 2018 View on HN

IMO pretty much no other language run-time is directly comparable to the JVM simply due to the VM part. Building an entire VM into your run-time comes at a huge complexity cost but is necessary for its goal of running on different hardware seamlessly. It is simply not worth it for most run-times to try for that level of binary compatibility when simpler solutions like cross compiling work most of the time.

deilline May 28, 2022 View on HN

Maybe they meant there’s no VM like w/ Java, so no intermediate bytecode, or no IL like C# iirc

kanwisher Mar 10, 2015 View on HN

Not every language fits on the JVM, we shouldn't only have one VM for everything. GO is natively compiled and the runtime is only for GC very different models then Java

dmitrygr Jan 20, 2019 View on HN

Won't work for any of the languages mentioned. Somewhere underneath it all you need a runtime witten in a bare metal language

cygx Sep 27, 2022 View on HN

Not every runtime environment is a virtual machine...

int_19h Nov 24, 2022 View on HN

That very much depends on what you need a runtime for. JVM bytecode semantics are not a good match for something like C++ or Rust.

rubber_duck Aug 20, 2020 View on HN

JVM is turing complete so it can run any language, the point is efficiency

simion314 Mar 4, 2019 View on HN

JVM can be used for Desktop, server and in the past applets , it would be impossible to find a configuration that is optimal for all applications, so competent developers would tweak the defaults or use different deployment methods like AOT compilation or bundle your own JVM , is your problem that JVM is used in so many different places that different algorithms, runtimes and optimization were created for it ? Your examples of Go and Rust are of languages that are so far not been used in such d

yuashizuki Mar 6, 2015 View on HN

Native means ur apps gets compiled to binary during compilation process, and not scripts being interpreted by a vm at runtime.

01HNNWZ0MV43FF Jul 29, 2025 View on HN

The tooling doesn't seem to be there to run C++ / Rust / Go / whatever efficiently on a JVM, too