Well, I'm not been active here or in #nim on freenode lately, but I've been using Nim a lot at work.
I'm on a new project (rather significant one), and I decided to do a majority of the new software required by it in Nim. Tried to do one component in C++, as it required a lot of posix stuff, and Nim's is not complete.... but eh... After about 900 lines of working C/C++ code I rewrote it all in Nim (line by line translation, much of it was just syntax cleanup). The parts not there, I left those in C and called those parts from Nim, or I just made do with what was there with casting. So far so good. I just got tired of fighting C/C++'s lack of modularity, namespace leakage. C++11 and newer make up for quite a few deficiencies, but meh... Nim is just so much better to program in... (stack traces, proper modules, metaprogramming, etc). I had been using Mako (python) quite a bit for ansible templates, but a couple months ago I switched them all over to Nim's source code filtering. Everything I was doing in Mako, I can do with Nim's source code filtering, and I don't have to put up with Python's dynamism that catches stuff very late in the game. (for python code in the template file). There is a bit of a risk using Nim at work, but there is also risk in not using it. When I look at Swift, I don't see what it has to has offer (apart from a very good REPL) that I don't have in Nim, but in a curly brace style. (Python got me use to the indentation style, which I hated at first, but now I prefer it). Rust, go, D, while better in many regards than C++11 (and newer) fall short in a lot of areas when it comes to programmability for me. **Posix *(well, I guess these are not strictly posix)* issues I ran into:** * [http://nim-lang.org/docs/posix.html#SigVal](http://forum.nim-lang.org///nim-lang.org/docs/posix.html#SigVal) (My code uses the integer value, I was able to do casting to make it work) * **forkpty** is not present * **cfmakeraw** is not present * **tcsetattr** is not present * **tcgetattr** is not present * **SIGWINCH** is not present, was trivial to add * **ioctl** with a third parameter is not present And maybe a few other items... Of course those are all able to be worked around, especially since it so easy to mix C with nim. Overall Nim has been a joy and I've been very productive with it at work. I hope to be using it long term at work, especially if I can get others to start using it. I looked at Crystal some, but I prefer Nim over it. If anything for the syntax, but there are other considerations as well.
