I'm not talking about the language you use to write the runtime. I'm talking about the language you use to write the code that becomes the WASM that the runtime runs. They not need be the same.
As others have pointed out you can compile pretty much everything to WASM, but it's most often done with the same languages you'd use to compile to native code; C, C++, Rust, the usual suspects.
I'm not necessarily saying it's a good language, but it's an excellent abstract machine. It won't die.