Reddit: why aren't people using D?

John C johnch_atms at hotmail.com
Mon Jul 27 09:48:50 PDT 2009


Steven Schveighoffer Wrote:

> On Mon, 27 Jul 2009 12:16:59 -0400, Andrei Alexandrescu  
> <SeeWebsiteForEmail at erdani.org> wrote:
> 
> > Steven Schveighoffer wrote:
> >> On Mon, 27 Jul 2009 10:54:00 -0400, Andrei Alexandrescu  
> >> <SeeWebsiteForEmail at erdani.org> wrote:
> >>
> >>>
> >>>> That's why properties are not
> >>>> functions.
> >>>
> >>> This post had a negative effect on me: I now think properties are  
> >>> functions even more than before.
> >>  Let me bring you back to the issue at hand:
> >>  writefln = "hi";
> >>  :)
> >
> > That wart must be eliminated. But the shortcomings of the current design  
> > are not a proof that we need a specialized facility for what is at the  
> > end of the day nothing but a notational convenience.
> 
> I personally am OK with any solution that allows me to specify that a  
> function is actually a property, thereby restricting the compiler from  
> allowing assignment calls with normal functions.
> 
> The most straightforward solution I can think of is marking a function  
> with a keyword, i.e.:
> 
> property int x() {return _x;}
> property void x(int n) {_x = n;}

Agreed. And enabling the function pair to be enclosed in a block would reduce repitition a tad as well as indicate they are one entity.

property {
  int x() { return _x; }
  void x(int n) { _x = n; }
}

> 
> The other syntax suggestions provide different added bonuses, but I think  
> all of those bonuses are not as critical as code working as expected.
> 
> For example:
> 
> - implied hidden storage
> - documenting property getters/setters as one entity
> - being able to execute a getter during a debug session.
> 
> -Steve




More information about the Digitalmars-d mailing list