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