Rant after trying Rust a bit
Brendan Zabarauskas via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jul 25 06:17:03 PDT 2015
On Saturday, 25 July 2015 at 09:40:52 UTC, Walter Bright wrote:
> On 7/25/2015 12:19 AM, Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?=
> <ola.fosheim.grostad+dlang at gmail.com> wrote:
>> The point of having a type system is to catch as many mistakes
>> at compile time
>> as possible. The primary purpose of a type system is to reduce
>> flexibility.
>
> Again, the D constraint system *is* a compile time system, and
> if the template body uses an interface not present in the type
> and not checked for in the constraint, you will *still* get a
> compile time error.
>
> The idea that Rust traits check at compile time and D does not
> is a total misunderstanding.
>
>
>
> BTW, you might want to remove the UTF-8 characters from your
> user name. Evidently, NNTP doesn't do well with them.
I think the point is that trait based constraints force
compilation errors to be raised at the call site, and not
potentially from deep within a template expansion. Template
errors are stack traces coming from duck typed, compile time
programs. Library authors can't rely on the typechecker to pick
up on mistakes that may only appear at expansion time in client
programs.
More information about the Digitalmars-d
mailing list