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.

Reply via email to