> A cross platform byte code that runs in some kind of emulated machine was done ages ago and called Java.
Java does not emulate a machine. It abuses the term "virtual machine" for what is actually a compiler back-end. A particular difference to WASM is that the JVM's idea of how memory works is totally different from both WASM and real machines.
> And they seem not-exactly-immune to security problems.
This has nothing to do with the JVM but with the standard library, which tries to implement security for very-high-level operations. WASM is closer to browsers, which already implement security in a much more robust way.
> Then we did containers and they were better.
If you think that containers are the way to run native code in the web, I'd suggest you build a proof-of-concept. Because to me that doesn't sound like a great idea at all.
> ... direct access to network hardware ...
Talk about security nightmares...