On Friday, 25 January 2013 at 16:43:45 UTC, Jesse Phillips wrote: [...]
That said many that want @property, want optional parens to die, as shown by your side comment that follows.
I think that observation pins the whole debate down, and it's an incredible amount of debate for something that boils down little more than personal taste. We don't even need property-like behavior, it's not that important. Meanwhile really serious problems exist that are not being attended to.
The concept of a property works perfectly fine without explicit @property enforcement (except for perhaps an edge case or two that can be corrected). When I started with D, the TDPL told me that I had to put @property in, and it was actually a relief to discover that I did not have to do that. It's a waste of time, and more than half the time I could not decide if I wanted property-like behavior or not, so the lack of enforcement was a plus for me.
If the default behavior is optional parens plus no @property enforcement, i.e., the current behavior, then for the people who want to change the default behavior need to specify @property and we implement enforcement for those situations. However, for the remaining functions, the property behavior is optional and not enforced, so some means such as the @function proposal will be needed to enforce the traditional c-like function call syntax.
But is there any real need for the extra complications of implementing property and c-style function call enforcement? This is D and there's no law that states that D must behave exactly like C.
I think Walters proposal to shoot @property is perfectly sound. Get rid of it, fix the edge cases, and move on to solving the problems that matter a whole lot more than this one.
If Walter's proposal is not sound, then we need real clear technical reasons why enforcement is required, as opposed to arguments that boil down to personal tastes.
--rt
