Which D features to emphasize for academic review article

Mehrdad wfunction at hotmail.com
Tue Aug 14 14:22:12 PDT 2012


On Tuesday, 14 August 2012 at 21:13:01 UTC, Walter Bright wrote:
> On 8/14/2012 3:31 AM, Mehrdad wrote:
>> Then you get the best of both worlds:
>>
>> 1. You force the programmer to manually initialize the 
>> variable in most cases,
>> forcing him to think about the default value. It's almost no 
>> trouble for
>>
>> 2. In the cases where it's not possible, the language helps 
>> the programmer catch
>> bugs.
>>
>>
>> Why the heck D avoids #1, I have no idea.
>
> As I've explained before, user defined types have "default 
> constructors". If builtin types do not, then you've got a 
> barrier to writing generic code.

Just because they _have_ a default constructor doesn't mean the 
compiler should implicitly _call_ them on your behalf.

C# and Java don't.


>> It's one of the _major_ features of C# and Java that help 
>> promote correctness, and #1 looks orthogonal to #2 to me.
>
> I know Java doesn't have default construction - does C#?


Huh? I think you completely misread my post...
I was talking about "definite assignment", i.e. the _lack_ of 
automatic initialization.


> As for the 'rarity' of the error I mentioned, yes, it is 
> unusual. The trouble is when it creeps unexpectedly into 
> otherwise working code that has been working for a long time.

It's no "trouble" in practice, that's what I'm trying to say. It 
only looks like "trouble" if you look at it from the C/C++ 
perspective instead of the C#/Java perspective.


More information about the Digitalmars-d mailing list