> directly compiler is necessary.

No it is not... By compiling to C and then having the "actual" compiler turn 
that C code to system code, it has several advantages. One of those is simply: 
You use all the optimizations that are present in the used compiler to gain 
more speed.

Take a look here ... 
[https://github.com/kostya/benchmarks](https://github.com/kostya/benchmarks)

Notice how in a lot of case GoLang is slower usage despite the code being run 
on the same compiler ( and at times more memory usage ). Rust keeps up with Nim 
but does so again by using more memory. Nim's weakest results are the json 
decoding ( still a lot better then in the past ).

By compiling to C, Araq can write the nim-c code to more optimized. So for 
instance the g++ compiler can extract more speed.

Think of it as a pre-compiler / optimizer. Its not like this step slows down 
compile time. If we see how much GoLang has slowed over time ( think 1.6 is 
something like 3 times slower to compile compared to 1.3 ). Think Nim now is 
even way faster then the latest Golang for compiling.

It may sound illogical to have something compile multiple times but because you 
control the steps in between, its possible to add optimizations that are 
normally much harder to do ( as we do not control the gcc etc compilers 
development ).

Lets see ... Golang = multiple full time developers, backing of major company, 
simpler language and it gets its behind still kicked by a technically one 
person, who developed in his free time development team. ;)

Imagine when Araq can work full time on the code or has several other full time 
developers to back him up.

Reply via email to