It's a really clean abstraction of a computing environment, which is as well defined and predicatable that is possible.
I tend to prefer that to performance cludges, arcane architectural hand waving, and undefined behaviour.
Some people thinks it's useless, since they do no see the benefits, as there are costs.
(There are some obvious UX-flaws, especially on the desktop, where it takes a bit to start up, and clearly failes to define a jxe file-extension for executable jars... Not to mention all the enterprise-level shit that goes on...)
> It's a really clean abstraction of a computing environment
No, it's a clumsy and leaky abstraction which was not well thought out. P-codes are a nice abstraction. AS/400 is a nice abstrction. Dozens of other, better VMs are a nice abstraction. But not a JVM, which is broken by design.
I'd never chose it as an underlying VM for anything important.
You forgot about Squeak. Now THAT is a brilliant abstraction. Provided you don't touch the outside OS, you can copy an image, bit-for-bit, to another computer that runs the Squeak VM, and it'll just work.
I tend to prefer that to performance cludges, arcane architectural hand waving, and undefined behaviour.
Some people thinks it's useless, since they do no see the benefits, as there are costs.
(There are some obvious UX-flaws, especially on the desktop, where it takes a bit to start up, and clearly failes to define a jxe file-extension for executable jars... Not to mention all the enterprise-level shit that goes on...)