4 ms·
> isn't particularly common to see in industry You're completely right, but I can say I've introduced it for writing custom developer tooling across three comp
by girvo 7y ago
> isn't particularly common to see in industry
You're completely right, but I can say I've introduced it for writing custom developer tooling across three companies, including one very large rather well known one in the travel space (though that was pre 1.0)!
- sp33der89 7y agoWhat was your experience like using Nim for those projects?
- girvo 7y agoWonderful; 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
- jonahx 7y agoHow does it compare with Go and Rust?
- kungtotte 7y agoI 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.
- rezeroed 7y agoIt's a pleasure to use compared to Go. (Also, has generics).