<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br>On 3 Jul 2013, at 01:30 , Michael Homer wrote:<br><br><blockquote type="cite">Access to the same thing follows two different rules depending on how<br>you annotated it.<br></blockquote><br><div>I think that this nicely captures the difference in viewpoint.  Michael (and James, I think) view defs and vars in objects as being fundamentally different from defs and vars elsewhere in the language: like methods, such defs and vars are "features" of the object, and all "features" should be accessed uniformly.</div><div><br></div><div>Kim and I view defs and vars in objects to be just like defs and vars in other places.  The annotation on them <i>generate</i> methods, and those generated methods are treated like other methods.</div><div><br></div><div>As to the defaults for these generated methods being different from the defaults for explicit methods, Michael is right: we can't remember what the rules are, and nor will the students.  That's why I've started writing is publiclyReadable, is confidential, is confidentiallyReadable, etc, so that the annotations are explicit and clear, and there is nothing to memorize.</div><div><br></div><div>If we were to agree on a language change for def and var access in objects, so that they are bound like methods rather than like other defs and vars, then we should also change the keywords. </div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>Andrew</div><div><br></div></body></html>