What if all problems were solvable by adding or removing a layer of abstraction?

Perhaps, like any other tool-set... C has an optimal problem domain not everyone can understand, and it is often unrelated to llvm compilers.

Those who failed to learn why C++ evolved into its current state, are simply doomed to naively make another iteration of the same tantalizing bad design choices.

https://en.wikipedia.org/wiki/Second-system_effect

With things like WASM and GraalVM this is becoming more and more realistic. We don’t really write ASM anymore because it’s tedious and error prone, same can be said for C. I wouldn’t choose it today unless I absolutely had to. Abstraction is the way.

And the language you use to target WASM is... C?

I'm not necessarily saying it's a good language, but it's an excellent abstract machine. It won't die.

Just about every language can compile or transpile to WASM:

https://github.com/appcypher/awesome-wasm-langs