> Nim would be a good option to produce fast python packages? Not really. While it is possible - there are package like `nimporter` who can export Nim code to Python - it's overly complicated for little benefit. If you start using Nim, it's best to work entirely in Nim and use C++ library through FFI for what's missing.
> I need to use a lot of multiprocessing to parallelize things. Is this quite > smooth in Nim? or is it crazy as in C++? or almost impossible due to GIL as > in Python. Multicore processing is relatively okay. The threading is something that should be improved in 2.0, there are work in progress related to that (see `ßtd/tasks` for example). Otherwise, it's relatively easy to use openMP. Parallelism is handled for you in `Arraymancer`, you can also use `Weave` or <https://github.com/status-im/nim-taskpools> manipulating parallisation without having to rely on a `thread` object. > I also learned Rust and it produces packages in python. The only problem is > that simple things are complicated in Rust and in short-run it's not worth it. The main benefit of Python is easier-to-use API compared to C++ and Rust. Nim doesn't need Python to produce nice API, mostly du to its metaprogramming features and clean syntax. Small program stay simple but the language can keep on scaling even on bigger project. I would start with taking a look at Arraymancer to see what already exists