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! =)


Reply via email to