Rant after trying Rust a bit
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jul 23 07:08:25 PDT 2015
On 7/23/15 6:56 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm at gmx.net>"
wrote:
>> Traits
>> ------
>> I think the ability to express an interface without buying into
>> inheritance is the right move. The alternative in D is specifying the
>> behavior as a template and verifying the contract in a unittest for
>> the type.
>
> Not only that, but Rust does so much more with traits, e.g. closures.
> They seem to be a simple, yet powerful concept, that a big part of the
> language is built on.
>
> http://blog.rust-lang.org/2015/05/11/traits.html
>
> On the other hand, it is extremely restrictive in contrast to `static
> if()` and template constraints. D's approach is a lot more expressive
> and - at least for me - intuitive.
Thanks for the link, good quick read to get the overview of Rust's
traits feature. It's ingenious because it integrates static and dynamic
dispatch.
For dynamic dispatch, traits are better than interfaces - more flexible,
better informed. For static dispatch, they don't hold a candle to D's
constraints. This is important because dynamic dispatch is more of a
cut-and-dried matter, whereas static dispatch is where it's at.
For static dispatch I think D's template constraints are quite a lot
better; they have a lot more power and offer a lot more to promise. They
are an out-of-the-box solution that's a bit unwieldy because it's new
enough to not yet have established idioms. In contrast, traits come from
straight within the box.
From a language perspective, it is my belief that Design by
Introspection (enabled collectively by template constraints,
introspection, compile-time function evaluation, and static if) is the
one crushing advantage that D has over any competitor. Things like
range-based algorithms are good but easy to copy and adapt.
The faster we manage to get creative with Design by Introspection and
describe it, systematize it, create compelling designs with it, the
quicker will D win the minds and hearts of people.
There's a lot at stake here. An question often asked by would-be users
is "What does D offer that's special?" or "What does D offer over
language Xyz?" As we all know there are many answers to that. Maybe too
many. Now I know what the answer is: Design by Introspection.
Andrei
More information about the Digitalmars-d
mailing list