A few times I've been looking at nim, always thinking of looks nice. Then I consider what libraries I need (most recently (rpc over) websockets, html parsing/manipulating), and can't seem to find them. The language nim is great, unfortunately the ecosystem seems rather in its infancy.
I'm using Nim to build an experimental kernel, so lots of low-level systems programming [0]. Right now it can boot under UEFI, switch to graphics mode, query some hardware information, create and schedule kernel threads, and a very simple shell (no userspace yet).
In this regard I'd compare it to Zig (which I also tried for kernel programming) and Rust (which I find too complex). The thing that stood out for me about Nim is its elegance. I know it's subjective, but I like how the code "looks and feels."
I really like nim and have used it to create dependency free cli tools for colleagues at work to use, and for crawling, data slice/dice reporting uses that would be too slow for Python.
But had to stop using it last year when all the binaries it generated where being detected by CrowdStrike as a Trojan. The binaries would dissapear on execution and I'd be contacted by the security office. I uploaded a program to totalvirus and a few other AV systems also detected it as a trojan. At that point I stopped using it and switched to Go. Has that situation been fixed yet?
This is not a problem exclusive to Nim. It’s a toolchain problem and happens with C/C++ projects as well. Some malware gets tagged and some part of its code is used to identify that’s some generic code generated by a compiler. The only way to fully avoid it on windows is to get an EV certificate but usually updating your tool chain works. I’ve had similar issues with other languagesz
9 comments
[ 3.6 ms ] story [ 37.9 ms ] threadLooking forward to seeing Nim get more traction over time.
This is a great talk on what makes Nim special IMHO for those new to it: https://youtu.be/j0fUqdYC71k
If I need to write easy deployable backend apps I go for PHP.
If I need GUI I go with Python and Qt.
If I need to write numerical apps, data science, ML or related things I go for Python.
I use Go for cli apps and http web services.
For highly interactive front-end stuff, JavaScript.
But I simple don't know where Nim fits within my needs.
Any suggestions?
In this regard I'd compare it to Zig (which I also tried for kernel programming) and Rust (which I find too complex). The thing that stood out for me about Nim is its elegance. I know it's subjective, but I like how the code "looks and feels."
[0] https://github.com/khaledh/axiom
But had to stop using it last year when all the binaries it generated where being detected by CrowdStrike as a Trojan. The binaries would dissapear on execution and I'd be contacted by the security office. I uploaded a program to totalvirus and a few other AV systems also detected it as a trojan. At that point I stopped using it and switched to Go. Has that situation been fixed yet?