Nice! I feel like its blog posts like you that get Nim out there and more popular. Thank you!
Your points about private access are really good, instead of saying undeclared identifier or function it should say trying to call or access a private identifier or function. Would be great improvement! "Performance is typically on par with, or slightly trailing, C." Performance always depends on how well you write it. It's a topic I really like! One can write super slow Nim as well as super slow C. But I think nim offers is "no boundaries." In languages like python/js you are kind of just stuck. Having optimizing python/js you kind of hit a barrier where you can't go any further. And it sucks. I feel with nim, there is no barrier. You can always go faster! Slow? Try fancy C/C++ profilers like vTune. Figure out your bottleneck? Try ref vs regular objects, try arrays vs seq, try pointer arithmetic, disable array bounds checks, disable stack traces etc... you can always try faster and faster. Even crazy things like compute shaders or CUDA are available to you. It's not that Nim is fast, it's that Nim does not have "optimization walls." This always allows you to be faster.