I've used to use D a while ago, but here are the things that made me switch and i'm not going back.
* Nim is magnitudes of orders easier to contribute to. Not only the compiler code is easier to reason about (at least for me), but PRs are accepted a lot more willingly. I bet such openness of the core devs makes Nim evolution faster and I hope it's gonna stay that way no matter 1.0. * Nim emits C code and you can break in with emit pragma. That means that in no case should you write C code outside your nim file, no matter which platform you're targeting. * AST macros which D doesn't have is the gatling laser gun feature that should blow the minds of the most pervert metaprogramming junkies. Although with Nim you start thinking about metaprogramming in a different way from D/C++. * Nim's type system is different (IMO it is simpler (but not subset) and better at the same time), because Nim thinks that some things in D/C++ type system don't "matter" that much and only create friction, instead it focuses on some other things that "matter". * Nim is generally a fresher look at the current state of procedural programming languages, than D or something that tries to be C++, but better. * Nim's GC is precise, thread-local, a bit more deterministic and a lot faster, you can even timeframe it if you need consistent 60fps for example. There is some cost though that you always have to scratch your brain when going multithreaded. I hope though that this problem will be solved eventually. * Lots more, read the manual! =)
