On Sunday, 4 January 2015 at 18:10:52 UTC, Jonathan wrote:
Hey folks,

I've been recently checking out Nim/rod and feel like it takes a lot of inspiration from D (I think the creator was in the D community too as some point).

I'm pretty sure that D was not a big inspiration to Nim, even though Araq (Andreas Rumpf) has commented here on occasion.

How do you think it compares?

Overall, I much prefer Nim. The obvious first difference is syntax (Nim uses an offside rule like Python/Haskell/ISWIM) and for some people that's a huge difference which determines which they'll prefer.

Nim's parametric polymorphism is less powerful than D's I think (the words 'generic' and 'template' are used differently in the two communities so I'll try and be extra clear) but Nim has a powerful macro system and a (still unfinished) kind of "type classes" which give it an edge on D.

D has a simple class based OO that looks a lot like Java, and ties reference semantics to classes. D has a rather unique multi method based OO system.

There are quite a few more things (concurrency, effect system, iterators vs ranges, ..) but I'll just advise you to look.

What areas does D, in principle, makes it a better choice?

Larger language community. Lower bus factor too, I think.

Subjectively, D feels to me like an attempt to fix and improve C++. Nim feels more like a language in the Delphi/Modula-3 tradition with Python syntax. If you can't stand that syntax, stay away. It's not changing.

To give you my background, I like creating games (mostly using SDL bindings) using new languages, aiming for the most efficient yet concise way to write the engine and game logic.

Nim's GC was designed with games in mind. D's GC (which can be disabled) is not usually considered a strong point of the language implementation.

FYI, this is NOT a language war thread. I'm just curious about what separates them from a principle level.

Quite a lot separates them, even though they both target similar areas. Best to read a few tutorials and write some small programs in each. You might also try asking on the Nim forum. I realize you say you're not starting a language flame war, but the etiquette of the question is a bit problematic. Hopefully I don't fan any flames with my answer.

Reply via email to