LLVM on Node ... But Why?

LLVM, like many great pieces of software, is written in C/C++. The majority of LLVM is written in C++, though it also has a rather well thought out C API, or foreign function interface (FFI) so that it can be easily used from other languages.

Writing a toy compiler in C or C++ would probably be the obvious choice if you wanted to benefit from the extensive LLVM backend. It is very powerful, but also a lot of effort to maintain. It's hard to be agile and make lots of small iterations.

Javascript is definitely not a beautiful language by any means. Nor would I recommend it to anyone for large projects or porjects that they have to maintain for longer than a few weeks. But I don't think anyone would disagree that it can be somewhat useful for rapid prototyping.

I'm not going to say that C++ is a bad language, in fact it's probably still my "go to" language. But it's not exactly the most user friendly. There's a reason why almost all of the biggest tech companies have made their own takes on the perfect programming language in the last several years. See Microsoft's C# or Typescript, Google's Go, Apple's Swift. And that only lists the big languages that they've released to the public.