lmao so I'm reading the JVM spec because I'm implementing it in rust and the java people literally edited their own specification to apologize for making double-precision floating points take up two slots in the constant pool instead of one
lmao so I'm reading the JVM spec because I'm implementing it in rust and the java people literally edited their own specification to apologize for making double-precision floating points take up two slots in the constant pool instead of one
I can't say for sure, but this looks like a conflict between the current team that (for obvious reasons) sees Java as purely software, and the original team who were convinced that one of three sizes of Java processor was going to get embedded into every piece of electronics produced, and the virtual machine was just bait to attract more programmers.
It's been almost thirty years since I last looked at the spec - I may still have the gigantic print-out of v1.0 in one of the boxes in the corner of my bedroom... - but the other place where I'd expect to see little complaints like this might be the object tables. They seemed similarly hacky to look like both hardware and software, without acting like either particularly well.
that sounds like a likely explanation. why did they ever think java hardware was going to blow up? was it a limitation in writing portable code at the time?
My understanding was that it was more a solution in search of a problem. They wanted to take over the microprocessor industry, since nobody but their own departments built on SPARC, so went heavy into the idea of Internet-enabled appliances, which...I guess that they weren't wrong on that, just decades early to the party.
Java the language was (almost) an accident. This is from memory and I wasn't really paying attention to tech news at the time, but my understanding was that they couldn't finish the processor designs fast enough, so they dusted off their abandoned Oak (or Green? It went by both names at some point) language project, renamed it to fit the overall Java project, and pushed out the early VMs as a plugin for the (still new) web. They were hoping to have an entire generation of Java programmers with code already written for their processors.
Such a weird company, and I never understood how they went from an "everything about computers" business like modern-day Apple (but with UNIX) to "we push a programming language that any programmer could probably replicate" business...
when I was trying my own implementation of the class reader, not understanding this footnote lead to a couple hours of tracing an off-by-one error in a specific sample file