Another idiom I wish were gone from phobos/druntime

Meta via Digitalmars-d digitalmars-d at puremagic.com
Thu Feb 5 00:20:19 PST 2015


On Thursday, 5 February 2015 at 06:41:59 UTC, Daniel Murphy wrote:
> "Meta"  wrote in message 
> news:ejqtxksoifmqzetllaqw at forum.dlang.org...
>
>> I don't know about others (besides Beatophile, who religiously 
>> adheres to writing contacts), but putting contracts on 
>> functions is a hassle. I never do it unless I'm feeling 
>> particularly full of divine fervor. It's a lot like making all 
>> variables that don't need to be changed immutable (another 
>> thing which only Bearophile seems to do) or properly 
>> documenting code. Strong optimization guarantees from 
>> contracts would go a long way in convincing people to actually 
>> write them (although I guess that's not what you want; Perhaps 
>> you changed your mind). It's a chicken and egg problem.
>
> Would you be more likely to write contracts if something like 
> this was implemented?
> https://github.com/D-Programming-Language/dmd/pull/3799
>
> I want to check contracts at compile time, when possible.  For 
> me this would make contracts 1000x more useful.

I have seen that PR previously, and I do hope it gets merged. It 
is a step in the right direction; contracts may turn out to be a 
veritable goldmine of opportunities from optimization, such as 
Walter's desire to have assert() also mean assume(). Using 
contracts for optimization purposes is really a win-win, as it 
would make contract-based code both more correct AND faster. I 
think the best way to evangelize DbC is not that it's the correct 
thing to do, but because it makes code faster. That's obviously 
not the case with D yet, but I hope we get there someday.


More information about the Digitalmars-d mailing list