4 ms·
What's the difference between 'VM' and 'Native with runtime'? (In the 'Execution' column)
by cstuder 13y ago
What's the difference between 'VM' and 'Native with runtime'? (In the 'Execution' column)
- richardwhiuk 13y agoI suspect it's the difference between being forced to ship with a library at runtime to provide library functions, and the compiled byte code being interpreted by a native executable. e.g. the difference between 1+1 being translated to bytecode meaning 1+1, and it being actually translated to an x86 add operation.
- unwind 13y agoThe former means that programs are converted into code for a virtual machine, which is then executed. Often this involves compiling them back to native code, as in various JIT solutions. The latter means that the code compiles straight to native machine code, but also that executing the code relies on services provided by a "heavy" (as compared to C's runtime library) runtime library. For Go, the runtime does garbage collection, i.e. it's takes a fairly "active" part of the execution.
- andreasvc 13y agoNative with runtime means you get a native executable which has to use the runtime of the language, for example containing its garbage collector and support for co-routines. With VM you get code for, e.g., a stack or register-based virtual machine, not native code.
- pjmlp 13y ago'Native with runtime' is lack of understanding what a compiled language is all about. Even C and C++ have runtimes.