Theoretically C++ is the most efficient language, since it is the native language for wasm, no one thinks of writing assembly by hand.
Next are Rust and Go, these probably add some overhead since they provide additional help for the programmer. TypeScript would probably add the most overhead but it really depends on the use case.
There are not a lot of ...
The answer to this question is being documented here.
TL/DR: Getting the most basic functionality to work is very easy. You only need to export an apply(uint64, uint64, uint64) function in webassembly, which can be easily done in AssemblyScript.