2 ms·
I have started using Nim fairly recently (past month). I actually wanted to start using it about a year back, but it never happened. But my return to Nim was a
by kaushalmodi 8y ago
I have started using Nim fairly recently (past month). I actually wanted to start using it about a year back, but it never happened. But my return to Nim was a good step; this time I might be here for a while as I have started to understand the nitty-gritty details of the language [1].
Couple of reasons why I think Nim is an awesome language:
1. Syntax: It's beautiful. If you like Python syntax, you'll like this. On the other hand, it's much more concise, without losing readability.
2. Static type check, with a sprinkle of type inference only when assigning the initial value.
3. Proc/operator overloading: Have procedures (functions) named the same handle different data types differently. And the same with operators.
4. Support: Great support over Gitter, GitHub issues, Nim Forum, etc. Great devs! (though, I incorrectly thought earlier that that wasn't the case :))
5. Makes me feel home: Hacking/coding in Nim comes the closest to coding in Emacs Lisp. In Emacs, if I want to understand what a function does, I look at its source code. I can do the same in Nim.
6. Editor support: The nim-mode Emacs major mode and ob-nim Org Babel package are awesome!
7. Documentation: Check out the Nim the index.html to search anything, and also Devdocs.
8. Whitespace: Tab not allowed, yay!
9. Not as easy as installing go/rust toolchains locally (without admin rights), but not difficult either.
10. The nimble tool (equivalent of pip) works great for building/distributing Nim projects.
.. and much more! Computer science experts can talk about more benefits of Nim from systems programming point of view (GC, etc.).
For my use case, where I use Nim as Python/Bash replacement, CLI utility development, it looks excellent so far.
In plain terms, it's joy coding in Nim :)
[1]: https://scripter.co/notes/nim/ https://scripter.co/notes/nim/