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