Your comment immediately made me think of this. Highly recommended talk for anyone that hasn't seen it. It goes through a "fictional" (maybe not so much anymore) history of javascript until 2035. We are getting pretty close to javascript all the way down.
And then, just like the ad spams using JS, its advocates will be getting more than they asked for.
Get ready for WASM blockers.
I think Google is very afraid of this. Hence their push for Angular/Polymer/AMP. If they can build a good enough platform in JS they can stall the inevitable.
In the future only marketing parts of the site will use JS/HTML. The "web app" part will be some language compiled to WASM throwing frames to the canvas
What Google has liked to do recently is take all your data and replace your service. Search for recipes, jobs, music, or weather for examples.
They're trying to make leaving the homepage irrelevant by using sites data in their search results. Eventually the web will rebel.
Instead of "why I moved from Angular/React/.... to Vue.js", it will be "why I ported into WASM".
So the way to do it today would be WebAssembly -> asm.js/js -> canvas
asmj.js as JS is irrelevant to the point I was making, because if you access the DOM directly, your code won't verify as the asm.js subset, and so won't run via the asm.js engine.
asm.js is javascript.
asm.js === javscript