Although this thread is rather old I'll answer anyway because certain attitudes and questions come up again and again. It might be useful to have something to link to instead of saying it again and again.
Front-up: My first gut reaction to the OP was "Oh well, if he likes C# so much, why doesn't he just stick to it and be done". In other words: We are not salesmen, we love Nim and we are certainly happy if new users join but we are not salesmen. If you feel that language XYZ is so much better than Nim then simply stick to it. Simple as that. In fact, you might be perfectly right in thinking that XYZ is better than Nim - _for you_. There simply is _no_ best language. A language may be the right thing for many users and a broad spectrum of problems but _no_ language is generally the best. In my case (brutally compressed: reliable and safe software) I used Ada for quite some years and was _almost_ quite happy. In fact I've said a lot of good things about Ada (and still do). But there were those "buts". Nim addresses those. Well noted, Nim is _not_ "better than Ada". It just happens to offer a better trade-off for me. At least as of today Ada is (still) better in certain aspects but those are largely about "paranoid safety levels" (like real formal verifiability) and some things like much,much better docu (well, existing for decades that's not astonishing). I usually do not need those "paranoid safety levels". Software is almost never unsafe or insecure because AES-128 was used instead of AES-256 or because it breaks after having ca. 2 billion users (due to signed int32), etc. Nope, stuff breaks due to factors like creepily lousy code, utterly lacking design (and care), pressure by management demanding features, features, features, and inept languages (often (ab)used by inept developers). Nim addresses those issues to a large degree. And - that's very important - it makes it _easy, natural, and comfortable_ for the developer to write _considerably_ less buggy code. And by "considerably" I mean something in the range of 80% to 95% less bugs. In other words: Creating something like Heartbleed (SSL) was almost inevitable with the C code base. Creating Heartbleed using Nim would need a _serious_ level of carelessness or ill will. Two other points that are relevant for quite many are: Nim runs on quite many architectures and OSs. Unlike C# whose non-Windows support were ugly siblings and afterthoughts Nim wasn't designed for any particular architecture or OS. Nim offers the full feature set that is needed for many applications today. Support for both multithreading and async/await as well as for immutable variables come to mind as well as many (seemingly or factually) smaller things like defer or a really, really nice C interface or the fact that one can target javascript (and end up with something that is not crappy).