Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What was your experience like using Nim for those projects?


Wonderful; though I've been using it for quite literally years at this point. It's pretty rapid compile times, coupled with easy-as-anything C integration meant writing performant CLI tools or daemons with it was a breeze.

The nicest part of Nim I feel is that it was super easy for non-Nim programmers to pick up and understand. The team would regularly contribute to the tooling despite not using it anywhere near as extensively as myself, which I think speaks volumes to it's ease-of-use


How does it compare with Go and Rust?


I haven't written any Go, and only a little Rust, but it competes with both of them in a way.

It's safe and GC'd by default, but you can trivially swap GC or you can run entirely without GC and do everything manually. It's idiomatic to use managed references but you can do unsafe pointers if you want. Interoperability with C is easy but not seamless like with for instance Zig.

Compile times are excellent compared to Rust, as are binary sizes, making static binaries is trivial (which is harder in Go from what I understand).

I find the syntax easier/better than Rust with fewer special characters, but compared to Go I think the syntax is a wash.

It requires very little boiler plate, and let's you do things that cut down on code size like using `var` or `let` statements in blocks:

    var
      intVal: int
      strVal: string

I like the distinction of var vs. let over Rust's let mut/let as well.

The two major weaknesses at this point are package availability and documentation. There's a package for everything in Go and Rust land, and there's lots of documentation for everything. There's quite a handy standard library in Nim and most of what you typically need in the Nimble package manager, but sometimes you'll run into the situation of having to roll your own X.


It's a pleasure to use compared to Go. (Also, has generics).




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: