InfoWorld: What is your specific role in the development of WebAssembly?
InfoWorld: So you're an adviser on the project even though you're not specifically developing the code yourself?
I care about this stuff because it needs to go in the right direction. It could fragment, it could fall apart. They have an amazing alliance on WebAssembly, and I view it as fragile because these companies, as often as they cooperate in standards bodies, they compete.
Let's be frank. People will always glad-hand but in their honest moments admit the standards are always based on competitive concerns as well as noble ideas, and these browser companies are quite different from one another. They have different agendas. Apple and Google are not necessarily going to agree on any particular new emerging standard, and yet all four of them announced support for WebAssembly. As it evolves it's very important that you manage it like modern software.
Standards are like software. You can't shoot for the moon and do a big giant project. It's going to take too long and be very hard to estimate how long it will take to do it. And then the risk of these different companies [parting ways] because they don't agree over the long run on the big picture comes up. [Instead] you do it in smaller steps and you get to what people call the MVP -- the minimum viable product. If you study WebAssembly, you'll see that there is exactly that MVP approach. It's roughly co-expressive with asm.js. It has the same power as asm.js. You could even have a program that consults WebAssembly for browsers that don't yet speak WebAssembly but compile a version of asm.js so it would be bigger and slower to learn, but would still be the same program and have the same power.
People are doing WebAssembly as a target language for compilers, definitely for games. They are compiled to asm.js, and as soon as WebAssembly is supported well in browser stable releases, like Chrome Stable, these game companies, they're going to press a button, and instead of getting asm.js out, they'll get WebAssembly out, and at that point you'll see WebAssembly on the web.
If the MVP isn't kept minimal enough or if after they exceed the MVP, which I think is upon us, and they ship it in Chrome Stable and IE and Edge and Firefox and even Safari, which Apple is not committed to, then there's risk that the four companies don't agree on the next step or on the full road map, the ultimate vision for WebAssembly. The risk goes up. I think the discipline needed is that each step you have to minimize by the minimum viable next step, not just minimum viable first step but the minimum viable next step and the next and the next.
InfoWorld: Do you see anything going on that might indicate that the four vendors might splinter and WebAssembly might not happen?
Eich: I don't see it not happening. I've heard from concerned parties inside some of these companies that there is a risk rising after the MVP. Some of the people working on WebAssembly worked on Java in past lives. They have a lot of experience making virtual machines for a programming a language like Java. That is a different vision from the WebAssembly one.
There's no definite schedule by which they could say that. But the temptation might arise that you want to cut to that far future and not get the true steps to the minimum viable next steps, and if you are not realistic about your prospects, you may make the wrong decision. To make a long story short, I feel there's tension mounting among the vendors, even within these big companies, Google in particular.
InfoWorld: Have there been any technical roadblocks encountered along the way in developing WebAssembly that you're aware of?
Eich: No. It's mostly based on mature stuff around optimizing compilers and virtual machines. Initially, the idea was that it would be based on a binary syntax or what you call syntax trees, parsed trees, abstract syntax trees, but they switched to something more like a stack machine language sort of like Java's current language. That was done under careful evolutionary thinking. There are always trade-offs when you do that. There are these degrees of freedom and even matters of taste and aesthetics. It isn't clear.
InfoWorld: Do you see a minimal viable product coming out in a few months? Is that what you see happening?