I can say for some of them (tho I come from game dev side):
C# is very much usable, although some generated code could be nicer, performance-wise (e.g. anonymous objects), but it’s not an issue most of the time. I used it successfully to compile a DLL with game logic for use from Unity. Using existing libraries is just
-net-lib Some.dll - it’ll read the bytecode and create extern types automatically. From what I know, Java backend is very similar.
JS is one of the best targets right now, considering the quality of generated code. Integrating with existing libraries requires writing extern definitions, which is pretty simple and there are a lot already.
Lua target is similar to JS, although it’s newer and the generated code is not as minimalistic as JS (mostly due to lua specifics), but I had some success writing stuff for the Defold game engine using it, so should be fine!
I did a library for our QA guys on my previous job, using Python target - it’s okay, although using external libs might be a bit tricky due to heavy usage of duck typing, operator overloading and args/kwargs argument handling in native python code.
HashLink seems to be a beautiful new target - really well optimized code generation and efficient data structures, can generate pure C or bytecode that is JIT-ed to machine code on load. Already battle-proven, tho I personally haven’t used it for non-helloworld projects. Integrating with native libs requires some C glue, that can often be generated automatically. The overhead is minimal to none.