While we're lynching features, how bout' them omittable parens?

Steven Schveighoffer schveiguy at yahoo.com
Tue May 19 06:54:02 PDT 2009


On Tue, 19 May 2009 00:29:17 -0400, Ary Borenszweig <ary at esperanto.org.ar>  
wrote:

> Jesse Phillips escribió:
>> On Mon, 18 May 2009 21:53:06 -0400, Nick Sabalausky wrote:
>>
>>> "Chad J" <chadjoan at __spam.is.bad__gmail.com> wrote in message
>>> news:gut1od$l56$1 at digitalmars.com...
>>>> Lionello Lunesu wrote:
>>>>> "Chad J" <chadjoan at __spam.is.bad__gmail.com> wrote in message
>>>>> news:gut0f2$jc0$1 at digitalmars.com...
>>>>>> Nevermind properties.  Any chance we can forbid the omittable
>>>>>> parentheses, at least in the lhs of an assignment expression?
>>>>>>
>>>>>>
>>>>> This is not because of the omittable parens. Even with added parens
>>>>> that code should not compile!
>>>>>
>>>>>
>>>> Agreed!
>>> I still want to get rid of omittable parens (and  
>>> function-call-as-a-lhs)
>>> anyway. They're a horrible substitute for a real property syntax.
>>  I don't like C# properties, IMO it is pointless overhead. I agree you  
>> can misuse the omittable parentheses, but what is a "real" property  
>> syntax? Seems to me both D and C# provide the same syntax they are just  
>> set up differently.
>
> What I like in C# about properties is that they are like "pure"  
> functions, so they don't have side-effects (this is just a contract on  
> the semantic of properties). What that means is that you can invoke them  
> while debugging code and be sure they don't alter the flow of execution.  
> So when watching a variable you automatically can see it's properties,  
> not just it's variables. I find that very useful, since properties  
> basically tell you what's the representation of an object, what's it's  
> meaning (hiding how it is implemented, ultimately).
>
> Currently you can't do that in a D debugger because a method like "int  
> foo();" could have side effects.
>
> So for me, properties are way more than just syntax sugar.

AFAIK, this is not enforced by the compiler...

I write C# properties that have side effects.

-Steve



More information about the Digitalmars-d mailing list