Hacker News new | ask | show | jobs
by russtrotter 1597 days ago
To continue the Java bytecode prior comment, at one point, java was in all browsers of the time (i.e. Applets). However, it lost, and seemingly removed with extreme prejudice with no nods to backwards compatibility.

Java also enjoys multiple HLLs that target its bytecode (Scala, Kotlin, Groovy, Jython, etc) and there's nothing in the runtime capabilities that tie it to any kind of constrained platform (threading, IO, async)

Don't get me wrong, I'm really hoping that WASM succeeds but I'm concerned that the same set of slam dunks we thought back in 1996 don't result getting posterized (again) by DOM/JS.

1 comments

> To continue the Java bytecode prior comment, at one point, java was in all browsers of the time

No, it wasn't.

> (i.e. Applets).

Applets required (1) installing Java on the system, and (2) installing a plugin for Java in the browser. The capacity to run them was not built in natively to any major browser.

> However, it lost, and seemingly removed with extreme prejudice with no nods to backwards compatibility.

It progressively lost to (1) other plug-in based tech (Flash), and (2) expansion and optimizayiom of the web platform to make plug-in based tech less needed while security problems of the model became more visible, and finally (3) the rising importance of web browsers that didn't support plugins (which are now dominant even on desktop.)

> Java also enjoys multiple HLLs that target its bytecode

But not C/C++ (or, now, Rust/Go), in which a lot of common code on which native-targeted code in other languages rely is written. WASM was specifically designed with being a target for C/C++, and those and languages like Rust and Go already target it.

The capacity to run them was not built in natively to any major browser.

It was at first. In the early days of Java, Netscape and Internet Explorer had their own embedded JVMs.

> But not C/C++ (or, now, Rust/Go), in which a lot of common code on which native-targeted code in other languages rely is written.

It does actually. Graal can run LLVM bytecode. Also, if you mean some specific C library used by everything, the Java ecosystem is absolutely huge and has the benefit of being almost completely written in Java with very little native code.

[re: what compiled to Java when applets lost vs what compiled to WASM today]

> > But not C/C++ (or, now, Rust/Go), in which a lot of common code on which native-targeted code in other languages rely is written

> It does actually.

It didn't when applets lost.

> Graal can run LLVM bytecode

GraalVM came around a long time after applets failed, so it isn't really relevant to assessing what capability applets had when they failed vs. what WASM has now.