I recuse myself (was: Private names use cases)

David Herman dherman at mozilla.com
Tue Dec 21 15:06:17 PST 2010

> I never said I don't want syntactic support. I said I don't like the syntax you proposed. You and Dave have now both said that you consider this to be the main issue.

Hm, I certainly didn't intend to say that. I'm not quite sure what you're referring to that I said. I don't necessarily have a single sine-qua-non in this design space. Sorry I haven't been as clear as I should have.

There's a lot going by in this conversation, and I don't want to add too much noise, but I do want to emphasize something: the various options we've discussed *all* have a syntactic component, even if we separate out the |private| syntax. Brendan mentioned this in reply to David-Sarah, but I think it's worth repeating: whether in the soft fields approach or the private names approach, <expr>[<expr>] is overloaded in a new way.

Maybe that's the key sticking point for me about the soft fields approach: overloading that syntax to mean lookup in a side table is what seems like a drastic break from the intuitive model of objects. I have nothing against side tables as a programming idiom; it's when you make them look like they aren't side tables that they become confusing. Especially when you can do counter-intuitive things like add new properties to a frozen object. Of course, there are clearly use cases where you want to associate new data with a frozen object, and convenience would be helpful. I'm just not convinced that making it look like ordinary object lookup is the right programmer-interface. So yes, it's a syntax issue, but it's a syntax issue that frames the mental model, and I think that matters.

What am I saying with all this? Not sure. I'm disheartened at the level of controversy too, but I think it's worth pushing through, because as a JS programmer, I really feel the lack of private fields-or-properties (with apologies to the English language... trying to remain diplomatic here...) in day-to-day programming.


More information about the es-discuss mailing list