| ▲ | writebetterc 3 days ago | |
> A stack based machine? Why? The JVM being a stack-machine is probably the least controversial thing about it. Wasm, CPython and Emacs all also have a stack-based bytecode language. The value, of course, comes from having a generic machine that you can then compile down into whatever machine code you want. Having a register machine doesn't seem very useful, as it's completely unnecessary for the front-end compiler to minimize register usage (the backend compiler will do that for you). Specifying classpath isn't fun, I agree with that. Launch performance isn't good, and is generally a consequence of its high degree of dynamicism and JIT compiler, though of course there are ways around that (Leyden). > I've written entire programs in JVM bytecode, without a compiler, and I see very little of value in it I agree, I also see very little value in manually writing JVM bytecode programs. However, compiling into the JVM classfile format? Pretty darn useful. | ||
| ▲ | Skinney 3 days ago | parent [-] | |
> Having a register machine doesn't seem very useful... Requires fewer instructions, so potentially faster evaluation, which is good for short-lived programs that ends before the JIT kicks in. Stack machines requires less space per instruction, however, which reduces the size of the program (faster to load). | ||