On Sunday, 2 February 2014 at 18:37:34 UTC, Mario Schmidt wrote:
I'm new to D. Currently I'm programming in C# and I am looking for a secondary, or even new main language that D might become.

One of the features that I found most promising in D is DbC. However, I was very disappointed when I realized that the current implementation is not much more than an assert that is evaluated during runtime.

What i mean is.. look at this code:

void goCrazy(Person p)
in { assert(p); }
body {
// whatever
}

void main()
{
Person goku = null;
goCrazy(goku);
}

The compiler may be able to identify simple cases, but reality is going to be a hit and miss. I think the goal here would be for goCrazy to take a NotNull!Person (but that implementation isn't finish).

On another note, in/out contracts don't appear to get much use in the community. I use them once in awhile, but don't feel I get much out of them.

Reply via email to