2021-02-04
Nim is a language I discovered recently. I had been looking for a native language like python, with better performance and strong typing. Just what Nim looked like.
I tried it a bit and I thought: oh no, not perl again.
The thing is, 15-ish years ago, I was a perl fan. You could do all sorts of through-aways with decent performance. Nim looks like perl because there are multiple ways to do about everything. Variable names are case and underscore insensitive, which allows to stick to your own style, but feels quite weird when you like consistency in other's code. Method and object calling also has mutltiple syntactic conventions which at times looks neat, and other times is cumbersome. The import system pollutes the current namespace with foreign symbols like C, and gets tricky once you try to go around that. Macros look so powerful that you imagine how they will generate tricky bugs. The standard library is also full of inconsistancies like init- and new- naming, but I guess that every language, even weel thought languages evolve with that defect.
Nethertheless, I gave it a chance.
And now I have written a game, a web server and a gemini library. And I have to say that I am starting to like Nim. It really feels like writing in a high-level scripting language, and yet getting native performance.
Next thing I have to try is deep learning...