Will the web ever evolve past JavaScript?

When I first came across the .NET Framework I was honestly amazed. Microsoft made a pseudo-assembly language that's entirely platform agnostic that works as a compiler target for numerous languages (C#, F#, more). And if you've been following the recent developments around WebAssembly this might all sound very familiar.

WebAssembly produced a great MVP but for WASM to really take off I would say that this issue is the most important. This issue describes interoperability with existing ES modules and giving WASM access to the Web APIs everyone knows and loves. With this, you could feasibly write a web app in any language*.

I want to believe that I can describe in plain words a program that a computer will write for me. In the mean time I want JS to succeed everywhere or make it easier for people to use the right tool for the job.

Ever since I heard about WebAssembly I've been hoping it would make writing web frontend in non-JS languages possible. It would be fantastic to have language tools for the frontend as diverse as we do for the backend.

There’s plenty of tools, but they’re all written in JS, or dialects of JS, or compile to JS (generally with a performance penalty, if the language isn’t closely related to JS to begin with). The promise of WASM that excites me is using non-JS languages with less compromise.

There is already a plethora of languages which can be compiled to Javascript and have the Web APIs accessible to them. Someone made an efford to list a lot of them here: github.com/jashkenas/coffeescript/...

And since WebAssembly is in the minimum viable product state, I think we will very likely in the not so far future see many more capabilities of the browser made accessible by it.

On the contrary, JavaScript already evolved beyond the web and will continue to do so. WASM is basically an extension of JavaScript to supplement it for performance-critical operations that also allows the usage of languages compilable to clang. It's very much like you can augment your C-Code with Assembly.