9 ms·
Static initializers, and bytecode verification make it much harder to get fast application startup. Class loaders, reflection, all methods being virtual, and i
by munificent 3y ago
Static initializers, and bytecode verification make it much harder to get fast application startup.
Class loaders, reflection, all methods being virtual, and iteration going through an interface make it much harder to get good performance with the complexity and warm-up time of a JIT.
Type erasure and single polymorphic dispatch makes the JVM's object representation a weird fit some languages.
UTF-16 strings are just awful.
Oracle's business practices rightly scare people away from wanting to build on top of anything they control.
The JVM is a very impressive technology, but it's also almost thirty years old and we've learned a lot since then.