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

Artur Skawina art.08.09 at gmail.com
Thu Jan 24 06:47:50 PST 2013


On 01/24/13 14:46, mist wrote:
> On Thursday, 24 January 2013 at 13:34:08 UTC, Artur Skawina wrote:
>> On 01/24/13 12:50, mist wrote:
>>> But looking at other comments this does not seem popular :(
>>
>> Language design is not a popularity contest.
> 
> Well most discussions seems to flow around simple preference conflict of beautiful UFCS vs consistent function calls. And all compromises tend to explode in difficulty once delegates and function pointers are taken into consideration. I find consistent and unambiguous call syntax more important.

It's not merely "important"; it is essential.

Those arguing for a "beatiful" UFCS syntax have not considered the consequences.
Others see no point in arguing against obvious insanity; which skews the
"popularity" numbers further. Just wait a year or so, until someone actually
runs into the problems, and watch this discussion reincarnate.

I can offhand think of three or four different ways to have a sane /and/
"beautiful" UFCS syntax, but even just discussing them would be a waste of time...

For example, both of these are doable w/o involving @property nor magic ()-less
function calls; the second doesn't even require per-function annotations, at the
cost of introducing another operator.

   iota(42, 2_000_000_000).filter!(a=>a&1).map!(to!string).take(10);

   iota(42, 2_000_000_000)->filter!(a=>a&1)->map!(to!string)->take(10);

Having ()-less function calls is just insane; if it isn't obvious to you why,
you just haven't read enough code that (ab)uses them.

IOW, UFCS and @property are not related, except the latter can currently be used
as a workaround for missing functionality.

artur


More information about the Digitalmars-d mailing list