On Thursday, 28 January 2016 at 22:30:51 UTC, nbro wrote:
I have loved C++ when I first started learning it a pair of
years ago (then I stopped for some time for some work reasons),
and quite recently I have discovered D, which seems apparently
a better language from the design point of view, especially in
supporting OO design and modularisation, maybe I am just wrong
since I know just a little of D so far, but I really had some
problems just in setting up a simple OO project, i.e. importing
classes, there are .h and .cpp files, etc, which only make
everything confusing and make you learn stupid things instead
of being productive. D also seems to have a cleaner syntax in
general. C++ is becoming more and more a mess because they keep
introducing new functionalities to make C++ compete with new
languages, and I'm starting hating it. Languages should not
just be powerful but simple enough to be productive.
Apart from this, what are the real advantages of D over Rust?
They seem to be similar languages in what they want to achieve.
Rust seems to be younger and the syntax seems to be slightly
different from the C-like syntax. I am not such concerned or
interested with the syntax advantages of a language over the
other, but more about in general what one does better than the
other. Overall, which one has a better design and a more
promising future? Which one is more performant, in which
situations? If you could answer all these questions it would be
nice. I'm still deciding which one to learn and invest my time
on, but I would like to have also your more experienced and
expert opinion.
I don't really think they are similar in what they want to
achieve. Rust wanted to achieve a zero-cost memory-safe model. It
almost did. I said almost because the cost is on the programmer's
side: you have to go out of your way and learn new mechanics to
use it. It may be a good thing to use but it is clear that it
needs you to develop new skills.
D on the other side wanted to be better than C++ but in the same
way: if you like C++-style programming you'll be able to transfer
those skills in D. If you like functionnal programming you can
program in D. If you like java-style programming you can program
in D. If you like C programming... well, you get the point. Of
course there are things that will be different but porting a
program from C doesn't imply rethinking the program: it's mostly
some symbol substitutions. You won't have that with Rust.
The other point is that metaprogramming is way better in D than
in Rust. Maybe Rust will eventually get better at it, but right
now D is the best IMHO.
The last point is harder to explain... There is a D style, and
that style is truely beautiful. I don't think it can really be
explained, it has to be discovered, but no matter how much I try
to learn something else I always find myself drown back to D.
Just my two cents :-)