properties

Benji Smith dlanguage at benjismith.net
Thu Jul 30 20:26:26 PDT 2009


Andrei Alexandrescu wrote:
> Steven Schveighoffer wrote:
>> On Tue, 28 Jul 2009 16:08:58 -0400, Andrei Alexandrescu 
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> Steven Schveighoffer wrote:
>>>> However, when I see:
>>>>  x.empty;
>>>>  I can't tell what is implied here.
>>>
>>> You can. In either C# or D language it could execute arbitrary code 
>>> that you better know what it's supposed to do. D simply doesn't make 
>>> it "bad style" as C# stupidly does.
>>
>> still not getting it, are you...
>>
>> Just forget it, I think this is a lost cause, I keep making the same 
>> points over and over again, and you keep not reading them.
> 
> I do read them and understand them. I mean, it's not rocket surgery. At 
> the end of the day you say "x = a.b;" looks more like sheer access 
> because that's what happens for fields already. Then you say "a.b()" in 
> any context looks more like an action because it's clear that there's a 
> function call involved. But your arguments are not convincing to me, and 
> in turn I explained why. What would you do if you were me?
> 
> Andrei

I totally agree with Steven's arguments (and have enjoyed reading the 
discussion).

I think the reason he says you're "not getting it" is because your 
examples tend to be "a.b" whereas his examples tend to be "a.empty". In 
your examples, you've stripped away the distinct function/field names 
and presented the argument from the compiler's perspective: in terms of 
arbitrary symbols that might either perform a pointer dereference or a 
function invocation.

Steve's arguments, on the other hand, are all from the perspective of 
the programmer. The parentheses following the identifier act as 
*punctuation* that clarify intent.

Good?

Good.

--benji




More information about the Digitalmars-d mailing list