On Aug 24, 2008, at 4:09 PM, Mark S. Miller wrote: > This gives > instance-private rather than class-private variables, which is the > safer default for a dynamic language. The new objects-as-closure sugar > also gives instance-private encapsulation, and without proposing any > new semantic state. I think it is better in all ways.
This is not settled in committee. Instance-private as in Smalltalk requires writing getters and setters, and at least some kind of branding or sealer/unsealer pair test so that Point methods can even tell they're dealing with another Point instance. Many more conventional and nearby languages support class-private variables, where Point methods could see any instance's privates, not just its own. We need to sort this out, but no rush. Your position may not be clear to the list, though, so I thought I'd elaborate slightly. The consequence of using lexical scope for private variables is that they are instance-private. It's a nice hat trick: privacy, higher integrity, and semantic reuse all in one. I'm still open to it, but we have the generative Name idea as an alternative way to make private names, which could be class-private or even "friend" among classes in the same lexical scope. Others on this list should comment on class-private vs. instance- private. /be _______________________________________________ Es-discuss mailing list Es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss