https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9...
With ARC there's no GC runtime anymore, making Nim a competitor with Rust.
Contrast to a language like Zig, which has a standard library and syntax built around the idea of manual allocators and what not, but is missing the "ease of use" of GC. Personally, I agree with GP, and like Nim's compromise of GC with a "I know better, let me do it manually" syntax, but there are domains where you want a language like Zig.
ORC adds runtime GC only for cycles, and will be the default in Nim 2.0.
Zig is definitely not that. And I understand the description above misses the downsides of a small community and not the strongest ecosystem.
- Both took some inspiration from languages of Wirthian family.
- Both promise easy onboarding and high readability.
- Both rely on automatic memory management by default.
On the other hand, I agree that Nim feels and functions totally different while offering much more possibilities. You can definitely call Nim the anti-Go, but it doesn't negate the fact it could absolutely shine in the same domains, at least with a bit more love, attention and funding.
From that blog post. Nim is great but it's more Go and less Rust...
Not at all, it does not have a runtime with a built-in thread pool and channels like Go.
On the good side, compared to go, Nim's interop with C is fully transparent (since Nim uses C as a backend). This means easy access to C libraries, but also makes it very appropriate for embedded targets like microcontrollers (especially with its ARC memory-management system, which is static/deterministic automatic reference counting).