On Mon, Apr 13, 2015 at 10:28 AM, Timothee Cour <[email protected]> wrote:
> I think people interested in D should take a closer look at nim and judge > for yourself ; http://nim-lang.org/tut1.html is a good starting point > (docs in general are very well written). > > I went through their tutorials and here are some first impressions: > > * nim is already bootstrapped (self-compiles) > * feature set is very rich, many features (semantic and syntax) not found > in D or improving the ones in D, eg hygenic macros, > * many key features of D (static if, type inference, CTFE, UFCS, lambda, > template constraints). > * The syntax seems more orthogonal with fewer bultin constructs and many > generated by library, eg: 'a>b is a hygyenic macro that generates 'b<a'; > associative arrays (tables) are in library > * documentation in code uses markdown (less noisy than D's) > * named parameter arguments > * tooling (nimble package manager ~dub, nimfix ~= gofix; nimgrep ~= > dscanner); > * etc... > > less good or tradeoffs: > > * C backend instead of (LLVM,gcc or dmd's; but they're working on it > * uses yield-based ranges instead of D-based ranges (maybe simpler to > write but less efficient?) > Other issues with that: this provides a less flexibility (eg infinite ranges, bidirectional ranges etc) > * forward declarations needed (docs says this may change) > * thread-local GC (no stop the world) > * RAII still experimental it seems > * mutually importing modules seem possible; but doc says: Modules that > depend on each other are possible, but strongly discouraged; it's very > common in D > * mutually recursive types. In Nim these types can only be declared within > a single type section. (Anything else would require arbitrary symbol > lookahead which slows down compilation.) > > not sure whether language has those; need to look more in the docs: > * delegates > Actually they do have delegates (just not mentioned in the tutorial) > * template variadic (but has varargs[T]) > * not sure whether we can have template parameters which are other than a > type > > It would be nice to have a wiki page to describe this further feature by > feature. Many ideas would be great to incorporate in D too btw. > > On Fri, Apr 10, 2015 at 2:26 PM, bachmeier via Digitalmars-d < > [email protected]> wrote: > >> On Friday, 10 April 2015 at 18:52:24 UTC, weaselcat wrote: >> >>> The only things I've read about nim have been on the D forums - it seems >>> the wikipedia article is even being considered for deletion due to not >>> being noteworthy. So I think you might have trouble finding any comparisons. >>> >> >> Read the comments sections on other languages on Reddit programming and >> you'll see their spam all over the place. >> >> I've never used Nim (and don't plan to because I've been turned off by >> their constant spamming of comment threads on Reddit) but the numerous >> comments I've seen repeatedly indicate that Nim is not yet ready for real >> use. >> > > I would like to refocus this thread on feature set and how it compares to D, not on flame wars about brackets or language marketing issues.
