@property - take it behind the woodshed and shoot it?

Max Samukha maxsamukha at gmail.com
Mon Jan 28 13:03:03 PST 2013


On Monday, 28 January 2013 at 18:43:19 UTC, Andrei Alexandrescu 
wrote:
> On 1/28/13 1:04 PM, Dicebot wrote:
>> On Monday, 28 January 2013 at 17:52:45 UTC, TommiT wrote:
>>> If you think my example of {start_time, end_time, duration} 
>>> represents
>>> proper use of properties, then I don't see why you oppose
>>> array.length. To me it seems like the same thing. Array has 
>>> some
>>> length, and you can change it by changing its length 
>>> property. T
>>> represents a certain time range, and you can change it by 
>>> changing any
>>> of its three properties {start_time, end_time, duration} which
>>> describe that time range.
>>
>> T changes its inner encapsulated states. Period. It is no 
>> different that
>> properties that calculate result on the fly, like range.empty 
>> (which is
>> good property usage).
>>
>> Array.length allocates. Takes from some global resources, 
>> takes some
>> considerable time, calls some global allocating function.
>>
>> For me it is a crucial difference that pushes symbol to the 
>> world of
>> functions.
>
> I guess you hate if people want their bigints to assign with a 
> = b.
>
> Andrei

widget.height = 100 should be condemned, too - it changes the 
state of the entire GUI system.

Let's face it: there are *no* objective criteria for determining 
whether a mutator should be a function or property setter.


More information about the Digitalmars-d mailing list