Also Nim is easy to integrate with Intel VTune, Apple Instruments and perf. You have full control on the data layout, prefetching and the same control as C over cache and memory usage if you so wish it (i.e. the GC is not a hindrance, you have easy escape hatches).
With some work you can even reach the performance of code which is 95% assembly and has been tuned for years (i.e. matrix multiplication):
- Reaching C Quake code speed in Nim: https://forum.nim-lang.org/t/5124#32241
- Reaching and going beyond OpenBLAS + OpenMP performance (almost pure Assembly): https://github.com/mratsim/weave/issues/68#issuecomment-5717...
- Faster than C++ on Raytracing bench: https://github.com/mratsim/weave/tree/9f0c384f/demos/raytrac...
- Faster than C++ on another Raytracing implementation: https://github.com/mratsim/trace-of-radiance/tree/v0.2.0
Also Nim is easy to integrate with Intel VTune, Apple Instruments and perf. You have full control on the data layout, prefetching and the same control as C over cache and memory usage if you so wish it (i.e. the GC is not a hindrance, you have easy escape hatches).