... It was also designed as an OOP language with exceptions, classes, etc. which causes your program to have a heavy emphasis on the taxonomy of types, and turns out to be less useful for code-reuse than was originally thought. Later Java ditched the VM and went to a more traditional compilation model, but the OOP baggage is still there.
There's a few dubious points in there, but are you saying OOP is somehow tied to native compilation vs. VM-based languages? Also, I thought Java's VM is still integral part of Java (thought I understand JIT compilation is at play).
Some people manage by the book, even though they don't know who wrote the book or even what book.