About LLVM usage - Zig devs already regrets that decision, see [here](https://ziglang.org/download/0.8.0/release-notes.html#LLVM-12):
_I 've started testing, hit two bugs I've already reported for 12.0.0 RCs and figured out I'm wasting my time. It seems that LLVM reached the point where releases are pushed through just for the sake of releases and QA doesn't exist_ Compile-to-C Nim feature cannot be overestimated. For example - "porting" to Nim to new platforms require almost no work - in my case running Nim on NetBSD, years ago, required a... `make` command. That's all. Compare it with effort required to port Rust to NetBSD or OpenBSD, such a tedious and cumbersome work! Compiling to C-code gave me also opportunity to better understanding some of language mechanisms - a look at `~/.cache/nim/*r/*c` files can be almost enlightenment, when in doubt. BTW: ease of use Nim on almost any platform with C-compiler and speed and flexibility of interfacing with C should be boldly advertised on main page - the later in the code examples. Zig already promotes himself as "language that allow mix Zig and C libraries without cost" and this is important area, when Nim shines. For example - there is also an interfacing between Go and C, but it is rather cumbersome and il-elegant and calling Go functions from C code is rather sub-obtimal (in some, specific cases I got a 10x difference between Go and Nim implementations, in favor of Nim, of course). There are workarounds for Go (moving loops into C-code and reducing number of calls) - but in Nim doesn't require them at all.