The bytecode was compiled , and C ++ code was compiled as well.
Also the JIT compiler, i.e...NET and Java, are massive and dynamic; And you cannot predict in a program that uses applications, so you need an entire runtime.
You also need to understand that a language oriented to a virtual machine has completely different design goals than a language oriented to bare metal.
Take C ++ and Java.
- C ++ will not work in a virtual machine. In particular, most of the C ++ language design is RAII oriented.
- Java will not work on bare metal for many reasons. primitive types for one.
EDIT: As Delnan correctly points out; JIT and similar technologies, although extremely effective for bytecode performance, are most likely not to be available during installation. Also compiling for a virtual machine is very different from compiling to native code.
Captain giraffe
source share