Sneak Peek at WebAssembly Studio
hacks.mozilla.org
hacks.mozilla.org
Java doesn’t run on many, many other devices (which do support web techs).
Java is controlled by Oracle.
WASM is not the same thing.
Administrative and human factors matter.
Promises and hopes around Java 1.0 are very similar to WebAssembly.
This has a way better long term shot at making it.
I beg to differ about 1 company though (article from 1998): https://www.javaworld.com/article/2076748/java-web-developme...
1. the startup time and upfront memory usage of V8 and other JS VMs is incomparably lower (better) than that of HotSpot; and
2. Java in the browser was relegated to gray opaque squares, while JS / Wasm has control of the entire viewport and all browsers APIs.
Those two points alone make it a clear winner. Not to mention the horrible security track of Java, probably due to the complexity of its implementation.
Even back in the day, the correct answer was Sun's HotJava, running applets within a native Java runtime, which was killed in the crib to appease NetScape.
You've heard the cliche about how sufficiently complicated 'C' programs recreate LISP, only poorly?
20 years recreating WORM applets. 20 years recreating grid computing and software agents (now pimped as 'serverless').
Imagine the world today if Sun had had some saavy championing their own tech.
#2 Canvas. The inevitable omega point will be tunneling X-Windows thru the HTTP, HTML, CSS, JavaScript (WASM) obfuscation & error injection gauntlet.
Why does it follow that development of abstractions will lead to people stacking endless VMs on top of each other? Javascript runs on Android today in a native VM, not a java-based one. Why would that change in the future?
(Not my idea, I just updated it for the times. Please don't mod down for foul language kthx, it's a homage to the original.)
(-> readability is matters only and really what)
Like so? env: {
__syscall0: function __syscall0(n) { return syscall(instance, n, []); },
__syscall1: function __syscall1(n, a) { return syscall(instance, n, [a]); },
__syscall2: function __syscall2(n, a, b) { return syscall(instance, n, [a, b]); },
__syscall3: function __syscall3(n, a, b, c) { return syscall(instance, n, [a, b, c]); },
__syscall4: function __syscall4(n, a, b, c, d) { return syscall(instance, n, [a, b, c, d]); },
__syscall5: function __syscall5(n, a, b, c, d, e) { return syscall(instance, n, [a, b, c, d, e]); },
__syscall6: function __syscall6(n, a, b, c, d, e, f) { return syscall(instance, n, [a, b, c, d, e, f]); },