Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Excuse my ignorance, but what browser-based non-JS VM was introduced successfully? You mentioned this was done before, and I assume you mean it was done successfully, so just curious to know which one it is?


We were actually discussing JS VM replacement in the browser, related to:

> True, but the JS VMs we have today have been refined over 15+ years and switching to another risks breaking the web in profound ways.

The counter-point being that all the major browser vendors have swapped out their VM or performed significant rewrites in the past few years; it's clear that it's possible to implement a new VM and not "break the web in profound ways".


I think you are misreading that quote. It's not replacing a JS VM with another JS VM that's a problem, it's replacing a JS VM with a non-JS specific VM would cause problems and break the web (something that has been proven to happen).

Arguing that you can replace a JS VM with a JS VM doesn't help the case of replacing a JS VM with a non-JS VM.


At the surface level, I could see how your position would appear logical.

However, the nature of the replacement VM doesn't really matter in the context of what we're describing here.

The problems of compatibility remain the same regardless of whether the target VM is a JS-specific VM, or a general purpose VM; reliance on undefined behavior, accidental changes in semantics, optimization bugs, and so on.

If browser makers were able to swap-out the VM, they've already demonstrated the ability to solve the exact same kind of compatibility problems they'd face here.


There is no such thing as general purpose VM.


A VM that provides a standardized bytecode and execution model capable of executing most modern dynamic and static turing complete languages with sufficient performance. This requires more general facilities for common functionality required; refer to tail call support, JVM's invokedynamic, etc.

Or, shorthand, a general purpose browser VM.

Unless, of course, you're arguing that the above is not truly possible, in which case I'd argue that's exactly what Google is exploring via PNaCL, and has (if not completely efficiently) been implemented across existing VMs. The PNaCL choice of LLVM bitcode was likely in error, but regardless, "no such thing" is a stretch.


I'm not saying that it is impossible as clearly there have been good efforts being made. However there is no such thing implemented.


Which comes full circle to my original point, which is that other than Google, nobody with a vested interest is trying, and worse yet, they actively oppose progress on this front.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: