UPDATE: this review is outdated, there are ways to address almost all Nim problems I mentioned here, I'm going to write updated review in a couple of weeks.
I'm working on some data processing project that's currently using TypeScript and Kotlin. I had one free week and decided to explore if Nim could be a better choice.
So this comparison will be Nim vs Kotlin and TypeScript. I shall say that while Nim has better design and is a more powerful language, it also lacks proper support for some basic features. In my opinion, at the current moment - staying with Kotlin or TypeScript will be more productive. The project will be finished faster and there will be less errors than with Nim. Below I highlight some use cases and explain why I think so.
I also shall say that in this project simple and correct code is more important than the performance. That may be unusual requirement for Nim as it's more focussed on the performance.
Nim good features
- Readable, clean and expressive code.
- Multiple dispatch, uniform function call, named arguments.
- Flexible data structures, objects, variants, tuples, sequences.
- Everything is an expression.
- First class functions.