Bill Baxter Wrote:

> On Wed, Jul 29, 2009 at 4:35 AM, Dimitar
> Kolev<[email protected]> wrote:
> > Kagamin Wrote:
> >
> >> bearophile Wrote:
> >>
> >> > Dimitar Kolev:
> >> > > None. I would call it isEmpty or isEmpty().
> >> >
> >> > This may interest Andrei: lot of people here (me too) seem to think that 
> >> > the name "isEmpty" is better than "empty" for that purpose.
> >> >
> >> The very properties discussion comes from D living in the context of C 
> >> family languages and their good practices. Python somehow managed to rebel 
> >> from those...
> >
> > The properties discussion arises from the people who can not think of good 
> > names for variables and functions.
> 
> Andrei decided to use empty over isEmpty because he wanted names as
> short as possible for the fundamental ops for ranges.  It had nothing
> to do with not being able "think of" isEmpty.  He thought of it and
> rejected it as too cumbersome for this purpose.
> 
> And it shouldn't be particularly ambiguous if understood to be an
> attribute of the range and not an action on the range.  Unfortunately
> we have no way in the language to specify that distinction.
> 
> > So they get confused by things like empty. It should be isEmpty the state 
> > and empty the function then there will be no confusion which does what and 
> > people can finally realize that () are optional.
> 
> If you don't have dedicated property syntax, then I agree, you
> probably should avoid the ambiguity and resort to isEmpty.
> 
> 
> > This is just an example but good names are the reason for all this 
> > weirdness. Or bad names.
> 
> I think having dedicated property syntax makes it easier to choose
> good names because there are fewer ambiguity landmines to watch out
> for.
> 
> --bb

As long as you can call variables and functions the same way with a . and as 
long as you can dismiss the () there is no way to make a distinction.

There are 3 options:

1) Enforce () for all functions.

2) Make () optional and people start choosing good names and not being 
influenced by laziness or whatever else.

3) Make calling properties in a special way. Some weird syntax like 
a#a = 9 or a$a = 9.

Reply via email to