On Friday 04 April 2008 16:31:56 John M. Dlugosz wrote:

> chromatic chromatic-at-wgz.org |Perl 6| wrote:

> > It shouldn't be.
> So you are saying that...

I was talking about syntax.

> In that case, why allow the variable-name form at all?

Because they're variables.  Sure, they're instance variables, but like hearsay 
and conjecture are *kinds* of evidence, instance variables are kinds of 
variables.  Sometimes it's nice to be able to assign to them, for example:

        method in_place_attribute_assignment ($.a, $.b, $.c);

> >> Why keep the variable syntax?

> > Uniform access principle.  See also "Why Java programmers fetishize their
> > IDEs, reason #482: autogeneration of metric boat-loads of
> > accessors/mutators at just the click of a button."
>
> That seems to be saying that using the method-call form is preferred, as
> it abstracts whether it is a real hard attribute or not.  Since my
> question was why keep the variable-name form, I think we are not
> understanding each other.

Yeah, I think you're asking the question backwards.  Maybe you should ask 
instead "Why are there accessor methods for instance variables?  Why not 
support only direct instance variable access?"

> >> I'm getting a picture of 3 forms of access:  Really direct, direct but
> >> asking the class to access it rather than knowing how storage works, and
> >> indirect that may involve your own code to do other things besides just
> >> get/set the attribute.  But I think the middle one can be handled
> >> invisibly by the compiler -- it's no different from a tied hash.

> > That really depends on how much external syntax you want to change if you
> > change the internal representation of an object.  For me, that's
> > approximately none.

> I don't understand that sentence at all.  Again, "invisibly by the
> compiler" sounds like what you want.

I'm still talking about syntax; I don't care for lvalue methods that look more 
like methods, not variables.  Maybe that's a personal failing.

I also could be completely misunderstanding what you're asking.  I *am* 
supposed to be researching a J2EE/SOA article at the moment.

-- c

Reply via email to