On Wednesday, 23 January 2013 at 22:24:20 UTC, Nick Sabalausky
wrote:
that provides absolutely no useful value whatsoever.
Do you think so many of us would be arguing for it and using it
if it was of no value whatsoever?
Note that properties are *not* functions
Indeed, which is why I separate out -property, a stupid waste of
time, and @property, a good idea.
Parenthesis and properties have nothing to do with each other.
But when @property was proposed, we didn't talk about what it
*is* (indistinguishable semantics from the return value), but
instead what it *looks like* (must not be called with
parenthesis).
That's where all this pain comes from. Two separate features got
intertwined due to a sloppy DIP.
You're talking about removing a feature (optional parenthesis)
from the language. We need to be weary of doing that. You say it
is useless... but it *is* used by many of us. Changing it now has
a cost. Even if it was worthless, the benefit of killing a
worthless feature is smaller than the harm caused by breaking the
code.
Similarly, I feel the new keyword is a detriment (indeed, I think
new is less useful than optional parens). It doesn't do anything
that can't be done in the library and gives special treatment to
one preferred allocator (the gc), discouraging others and
preventing easy replacement with user defined types (e.g. a
create method that returns NotNull!T instead of T).
But the fact is that new is a feature in D today, and removing it
would break a heck of a lot of code, so if I was given a vote on
removing it... I'd vote to keep it how it is.
Now, property semantics are an entirely different issue, and
thanks to the @property decoration, we CAN fix them without
breaking anything else. That's a no-brainer to me, we should
definitely do that.