I suspect Nim has a good shot at getting popular, by piggybacking on Python syntax, the same way several other languages (e.g. Java, JavaScript) got popular by piggybacking on C syntax. Python just became number 1 on TIOBE index. Once part of the generation of developers just starting now, Python-first, needs to learn a systems programming language, Nim provides a path of least resistance for migration, close to the syntax they will be already used to.
For me, Nim provides much of the developer productiveness of Python, but with higher performance.
I'm a big fan of Nim, and while I love Python, I keep finding more ways to use Nim instead of Python because it means if my proof-of-concept in Nim gets popular, I can avoid making trade-offs in scaling (due to performance).
Very good point. For Python enthusiasts, Nim positions itself nicely as a next step. I don't think Nim will ever reach the heights that Python has amazedly found itself at, but do think there is going to be a bit of "gravitational influence", that keeps giving Nim some public attention.
Eventually, Nim could find itself on the TIOBE top 50 to 30 rankings. That would put it among known languages such as D, Scala, and Haskell. Which might not seem like much, but considering all the new programming languages that are out here now, it is actually quite significant. The competition among newer languages (Rust, Crystal, Zig, Vlang, Odin, Julia...) vying for attention and to replace some of the older ones is fierce.
I mainly program in Python, but Nim has its own Zen and I respect that it's different.
Copying bad design is not good design.
If the compiler cannot reason about the code, neither can the programmer.
Don’t get in the programmer’s way.
Move work to compile-time: Programs are run more often than they are compiled.
Customizable memory management.
Concise code is not in conflict with readability, it enables readability.
(Leverage meta programming to keep the language small.)
Optimization is specialization: When you need more speed, write custom code.
There should be one and only one programming language for everything. That language is Nim.
If I wanted Zen of Python I'd just keep programming in Python ...
Python ecosystem, say Pytest, doesn’t follow Python zen either. It has implicit magic all over the place. String parsing from function names, the entire concept of fixtures is exact opposite of “explicit is better than implicit”.
I've used https://github.com/yglukhov/nimpy and I have to say the package, the author and the nim community were all phenomenal in helping me implement nim code that works as a Python package.
I've asked (sometimes stupid) questions in the Nim Matrix channel about some particular thing I was stuck on, and every time someone has answered it graciously and almost immediately. The community has been great, and I'm starting to really like the language.
For me it's like Python in the sense that I can bang out a quick, single-file program on a whim, but if it starts growing beyond that Nim is really fast, expressive, and portable. I can cross-compile a binary for any common platform (Nintendo Switch even), and then just send it over and run it.
Also of interest for people might be Genny. It’s a Nim library to automate creating language bindings for other languages. Currently it supports Python, Node, and C.