new DIP5: Properties 2
Steven Schveighoffer
schveiguy at yahoo.com
Fri Jul 31 19:17:27 PDT 2009
On Fri, 31 Jul 2009 16:53:12 -0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> Steven Schveighoffer wrote:
>> But in the case of properties only allowed without parens, functions
>> require parens, you are defining a rule for the compiler. Think of the
>> parentheses as an extension of the function name, like punctuation.
>
> But you say no parens means query, parens means action. This is sheer
> unchecked convention.
But we already have sheer unchecked convention! I could make a function
called sort that reverses an array. I don't get why it makes any
difference to you that the meaning of parentheses and no parentheses is
used by the author of the function. How is this bad or somehow worse than
what we have now? If you don't trust the author's functions do what they
are named for, don't use his functions and properties.
Since C was invented, we have had the convention that () means function,
lack of () means property. You are acting like the last 37 years of
programming languages never existed, and this is some "new radical"
convention. D is of C lineage, so using long standing C conventions
should not confuse people.
> Maybe less confusion, definitely more burden.
The burden is on the author to come up with meaningful function names
already. With real properties, at least that task is easier because you
don't need to add extra context to ensure a word is treated as a verb or a
noun (e.g. 'isEmpty' in order to make sure someone doesn't mistake 'empty'
for an action). The compiler enforces the requirement of property syntax
vs. function syntax, so no burden there.
-Steve
More information about the Digitalmars-d
mailing list