←back to thread

78 points pjmlp | 2 comments | | HN request time: 0s | source
Show context
epistasis ◴[] No.46189804[source]
The only thing worse than launching the JVM from the command line, with it's looooooooooooong and inexplicable load time, was hitting a web page and having it lock the browser for that amount of load time.

I remember a few decades ago somebody saying the JVM was incredible technology, and as a user and programmer I still have zero clue what the hell they could have been thinking was good about the JVM.

I hear that now, decades into Java, they have figured out how to launch a program without slowing a computer down for 10+ seconds, but I'll be damned if I find out. There are still so many rough edges that they never even bothered to try to fix about launching a .jar with classpath dependencies. What a mess!

replies(9): >>46189847 #>>46189885 #>>46189898 #>>46189998 #>>46190090 #>>46190158 #>>46191314 #>>46191875 #>>46197627 #
bhaak ◴[] No.46190090[source]
The JVM proved to the mainstream that a virtual machine good be as fast (sometimes even faster) than a compiled binary. Because of that it took a lot of the market share of C/C++ in the 90s.

You got a buffer overflow safe language without compromise of speed. After it has been loaded, of course. But that's why Java had such a tremendous effect in Web services where the load times are negligible to the run time.

replies(1): >>46190121 #
eru ◴[] No.46190121[source]
Of course, eliminating buffer overflows is orthogonal to using a virtual machine.
replies(2): >>46190223 #>>46190425 #
1. writebetterc ◴[] No.46190223[source]
No, it's not? Using a VM is one way of preventing buffer overflows, it's not orthogonal.
replies(1): >>46190497 #
2. eru ◴[] No.46190497[source]
You can prevent buffer overflows even when you don't use a VM. Eg it's perfectly legal for your C compiler to insert checks. But there are also languages like Rust or Haskell that demand an absence of buffer overflows.

You can design a VM that still allows for buffer overflows. Eg you can compile C via the low-level-virtual-machine, and still get buffer overflows.

Any combination of VM (Yes/No) and buffer-overflows (Yes/No) is possible.

I agree that using a VM is one possible way to prevent buffer overflows.